虚拟DOM原理
DOM:
浏览器中提供的概念,用js对象,表示页面上的元素,并提供一些操作元素的API
虚拟DOM:
是框架中的概念,使用js对象来模拟DOM元素和嵌套关系,虚拟DOM是以JS对象的形式存在的
本质:用js对象,来模拟DOM元素和嵌套关系
目的:为了实现页面元素的高效更新
Diff算法:
* tree diff
新旧两棵DOM树逐层对比的过程,当整棵DOM逐层对比完毕,则所有需要被按需更新的元素,必然能够找到
* component diff
在进行tree diff的时候,每一层中组件级别的对比,
-如果对比前后,组件中的类型相同,则暂时认为此组件不需要更新,
-如果前后对比,组件类型不同,则需要移除就组件,创建新组件,并追加到页面上
* element diff
在进行component diff的时候,如果两个组件类型相同,则需要进行元素级别的对比