Virual DOM是用JS对象记录一个dom节点的副本,当dom发生更改时候,先用虚拟dom进行diff,算出最小差异,然后再修改真实dom. vue的virtual dom的diff算法是基于snabbdom算法改造而来,与react的diff算法一样仅在同级的vnode间做diff,递归的进行同级vnode的diff,最终实现整个DOM树的更新. 虚拟DOM的缺点: 1. 代码更多,体积更大 2. 内存占用增大 3. 小量的单一的dom修改使用虚拟dom成本反而更高,不如直接修改真实dom