一、diff算法
1、DOM概念
我们所见的页面,是由一个一个的标签渲染到页面的,在虚拟dom
会将整个页面结构视为一颗dom树,并且提供的新旧dom树,可以进行
对比,以提高dom渲染性能
2、diff算法
diff(different)算法对比新旧dom树,用新dom修改后的地方
替换对应旧dom的地方
- tree diff
作用:遍历dom树,由上至下遍历,对比新旧dom树,遍历一遍之后,
就会找出新旧dom树中的不同的地方
- component diff
作用:在tree diff遍历dom树的时候,进行组件对比,找出旧dom树
的变化的组件,此时
如果新旧dom树的组件对应组件类型不同,则会移除旧组件,将新组件
添加到页面
如果新旧dom树的组件对应组件类型相同,则会暂时将此组件认为是不
需要更新的组件
- element diff
作用:在进行component diff的组件对比时,会遍历该组件中的元素,
对比新旧dom树中的该元素,此为元素级别的对比