1: 当数据发生变化的时候, vue 是怎样更新节点的?
要知道渲染真实DOM 的开销是比较大的, 比如我们修改了某个数据。 如果直接渲染到真实DOM上会引起整个DOM 树重绘和重排, 有没有可能我们只是更新我们修改了一小块DOM呢, diff 算法能够帮助我们。 我们先根据真实DOM 生成VDOM, 当VDOM 某个节点发生变化后会生成一个新的DOM 上, 然后使用oldvnode的值。
2: diff 算法: 就是调用patch 的函数, 比较新旧节点, 一边比较一边给真实的DOM 打补丁。
3: VDOM 和真实DOM 区别:
虚拟dom 是将真实DOM 的数据抽取过来, 所以以对象的形式模拟树形结构, 比如:dom 是这样的。