繁体   English   中英

如果没有观察到状态,Virtual DOM 实现与 createDocumentFragment() 有何不同?

[英]How's Virtual DOM implementation is different than createDocumentFragment() if no state is observed?

虚拟 DOM 是 DOM 的轻量级副本,在将其插入实际 DOM 之前在本地维护/缓存。 我们可以根据需要更改它,然后保存到我们真正的 DOM 树中。 它使用高效的 diff 算法来回更新更改和其他用例。
这一切都是为了避免对 DOM 的直接操作,因为这是一项昂贵的操作。
我们有document.createDocumentFragment()方法,它可以在 JavaScript 中使用,它还可以创建假想树节点对象以插入到 DOM 中。
我想知道,如果我没有需要观察任何状态或双向绑定的视图/组件(例如,仅通过传递的选项渲染模板,并处理 DOM 上的事件),虚拟 DOM 是否真的会在这种情况下有所作为?场景?
或者它与 createDocumentFragment() 一样好,如果它所要做的只是渲染而不观察状态。

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

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

这是DocumentFragment和 VirtualDOM 实际应用的最大区别。

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

虚拟 DOM 是 UI 树的虚拟表示。 它的名称具有误导性,因为它不再链接到 DOM。 如今,React 可用于带有react-dom Web 应用程序或带有react-native移动应用程序。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM