Javascript 如何';如果未观察到任何状态,则s的虚拟DOM实现是否与createDocumentFragment()不同?

Javascript 如何';如果未观察到任何状态,则s的虚拟DOM实现是否与createDocumentFragment()不同?,javascript,dom,reactjs,Javascript,Dom,Reactjs,虚拟DOM是DOM的轻量级副本,在将其插入实际DOM之前在本地进行维护/缓存。我们可以根据需要更改它,然后保存到真正的DOM树。它使用高效的diff算法来来回更新更改和其他用例。 所有这些都是为了避免直接使用DOM进行操作,因为这是一个昂贵的操作。我们有document.createDocumentFragment()方法,可以在JavaScript中使用,该方法还可以创建虚拟的树节点对象以插入DOM。 我想知道,如果我没有需要在任何状态或双向绑定上观察的视图/组件(例如,仅按传递的选项呈现模板

虚拟DOM是DOM的轻量级副本,在将其插入实际DOM之前在本地进行维护/缓存。我们可以根据需要更改它,然后保存到真正的DOM树。它使用高效的diff算法来来回更新更改和其他用例。
所有这些都是为了避免直接使用DOM进行操作,因为这是一个昂贵的操作。
我们有document.createDocumentFragment()方法,可以在JavaScript中使用,该方法还可以创建虚拟的树节点对象以插入DOM。

我想知道,如果我没有需要在任何状态或双向绑定上观察的视图/组件(例如,仅按传递的选项呈现模板,并在DOM上处理事件),虚拟DOM是否真的会在这些场景中产生影响
或者,如果它所要做的只是渲染而不观察状态,那么它与createDocumentFragment()一样好

最简单的答案是NodeJS没有(/will)document.createDocumentFragment,也没有
document.createElement
或任何类似的东西

VirtualDOM的要点是,不仅允许对稍后将注入DOM的系统进行大规模编辑,而且还允许在不存在DOM just plain的环境中进行任何编辑

这是
DocumentFragment
s的实际应用与VirtualDOM的最大区别


与手动插入片段及其子对象相比,DOM虚拟化的特定实例的额外好处是,某些视图库(比如React)使处理这些事情变得非常简单。

虚拟DOM是UI树的虚拟表示。它的名称具有误导性,因为它不再链接到DOM。现在,React可用于具有
React dom
的web应用,或用于具有
React native
的移动应用

的确,DocumentFragment和虚拟DOM是相似的:树状结构包含具有相似信息的节点。
确实可以使用DocumentFragment跟踪更改并在必要时更新DOM。但是,不可能在本地开发中使用它。此外,节点将包含不必要的属性和方法。

此处没有与NodeJ相关的内容。您可以在javascript中使用“document.createDocumentFragment”来创建片段,然后将整个树添加到DOM中。另外,我也为同样的问题编辑了这个问题。好吧,在这种情况下,问题只会归结到你们正在使用什么库,以及它们使用什么。因为如果你完全是手工完成的,没有那么多的助手功能,在这两者之间切换实际上不会给你带来任何好处,因为额外的内存使用。。。VirtualDOM的重点是。。。虚拟化DOM。。。不是为了让它更好更快,更神奇,甚至更容易使用。使用VirtualDOM(技术或实际的虚拟dom库)的库可能完成所有这些任务,甚至更多。不要切换到手工操作…集成测试也有好处,对于简单的测试,您不想花费时间构建和分解HTML页面,特别是为了访问DOM,检查元素/属性的值(例如使用Mocha运行CI设置)。但是,同样,如果测试也不算是一种好处,那么它仍然取决于Elms和Reacts等等。答案完全取决于您的场景。我不确定在您描述的场景中,使用doc片段是否比仅使用更典型的DOM操作和修改更好。您需要测试您心目中的场景。React不仅仅是一个虚拟DOM实现,它还为组件抽象提供了一个更具。。。这些可能是有价值的。