欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Vue-2 中虚拟 DOM 的理解和原理。

最编程 2024-04-21 10:48:37
...

在这里插入图片描述

  1. Vue 组件挂载时会发生如下几件事:

    挂载的过程可以简单总结为:模板 --> 渲染函数 --> 虚拟DOM树 --> 真实DOM

    1. 编译:Vue 模板被编译为渲染函数:即用来返回虚拟 DOM 树的函数。这一步骤可以通过构建步骤提前完成,也可以通过使用运行时编译器即时完成。
    2. 挂载:运行时渲染器调用渲染函数,遍历返回的虚拟 DOM 树,并基于它创建实际的 DOM 节点。这一步会作为响应式副作用执行,因此它会追踪其中所用到的所有响应式依赖。
    3. 更新:当一个依赖发生变化后,副作用会重新运行,这时候会创建一个更新后的虚拟 DOM 树。运行时渲染器遍历这棵新树,将它与旧树进行比较,然后将必要的更新应用到真实 DOM 上去。过程中会通过 diff 算法比较两个虚拟DOM树的差异,通过patch算法将两个虚拟DOM对象的差异应用到真正的DOM树上。
  2. 过程解释:

    挂载:一个运行时渲染器将会遍历整个虚拟 DOM 树,并据此构建真实的 DOM 树。这个过程被称为挂载 (mount)。

    更新:如果我们有两份虚拟 DOM 树,渲染器将会有比较地遍历它们,找出它们之间的区别,并应用这其中的变化到真实的 DOM 上。这个过程被称为更新 (patch),又被称为“比对”(diffing) 或“协调”(reconciliation)。

    渲染函数: 渲染函数是用来生成Virtual DOM的。

推荐阅读