概念
diff算法就是在新旧虚拟DOM树上进行虚拟节点的比较,在比较的同时将补丁对象(patch)更新到真实DOM树上
Vue2.x特点(优化方法)
1.diff算法只会在同一层上比较
2.diff算法在同一层中从两侧向中间比较,头头比对,头尾比对,尾头比对等
3.diff算法遇到标签名不同时,会直接删掉节点,不进行深度比较
4.diff算法遇到标签名相同,key相同时,也不会进行继续比较
注:未进行优化的diff算法的时间复杂度时n^3,优化之后时间复杂度是n
Vue3.x特点
1.在创建虚拟DOM树时,会根据DOM内容会不会变化添加静态标记,新旧虚拟DOM树比较时只比较带有静态标记的节点(静态提升)
pach 算法
— 将两个虚拟 DOM 对象的差异应用到真正的 DOM 树。