是什么?
在vue里也叫patch算法,是虚拟dom(js对象)技术的产物。
patch过程(遵循深度优先、同层比较的策略):
两个节点之间比较时,如果它们拥有子节点,会先比较子节点;比较两组子节点时,会假设头尾节点可能相同先尝试,没有找到相同节点后才按照通用方式遍历查找;查找结束再按照情况处理剩下的节点;借助key通常可以精准找到相同节点,是整个patch过程非常高效
从数据变化到更新dom的过程:
当组件中数据发生变化是,对应的watcher会通知更新并执行更新函数,它会执行渲染函数获取新的虚拟dom(newVnode),然后就会执行patch算法,比对上次的渲染结果oldVnode,将变化的地方转换为真实的dom