非常简单的说:
Virtual Dom (虚拟dom)就是用js来模拟DOM中的节点。传说中的虚拟DOM。
diff算法 就是进行虚拟界定啊对比,并返回一个patch对象,用来存储连个节点不同地方,最后patch记录的消息去局部更新DOM。
深入理解的话往下看
思考
什么是虚拟DOM
所谓Virtual dom, 也就是我们常说的虚拟节点,他是通过js的object对象模拟DOM中的节点,然后通过特定的render方法将其渲染成真实的DOM的节点。
为什么使用虚拟DOM
如果使用框架的过程中会频繁引起大面积DOM操作,虚拟DOM的出现是为了减弱频繁的大面积重绘引发的性能问题!
Diff算法
DOM Diff指的是通过Diff算法去比较虚拟DOM的变化
当数据发生变化时,Vue是怎么更新节点的?
先根据真实DOM生成一棵virtual DOM, 当virtual DOM 某个节点的数据改变后会生成一个新的Vnode,然后Vnode和oldVnode作对比,发现有不一样的地方就直接修改在真实的DOM上,然后使oldVnode的值为Vnode。
diff的过程就是调用名为patch的函数,比较新旧节点,一边比较一边给真实的DOM打补丁(patch)。