1.虚拟DOM(Virtual Document Object Model)
1)DOM的本质是什么?
浏览器中的概念,用JS对象来表示页面中的元素,并提供操作DOM 的API。
2) 什么是React中的虚拟DOM?
是框架中的概念,是程序员用JS对象来模拟页面上的DOM和DOM嵌套。
3)虚拟DOM的目的?
为了实现页面中DOM元素的高效更新。
2.DIFF算法
1)Tree Diff:
新旧两棵Dom树进行逐层对比的过程,就是Tree Diff;当两棵DOM树逐层对比完毕之后,则所有需要按需更新的元素必然能被找到。
2)Component Diff
在进行Tree Diff的时候,每一层中,组件级别的对比,就是Component Diff;
如果对比前后,组件的类型相同,则暂时认为此组件不需要被更新;
如果对比前后,租价的类型不同,则需要移除旧组件,创建新组件,并追加到页面上;
3)Element Diff
在进行组件对比的时候,如果两个组件的类型相同,则需要进行元素级别的对比,这就是element Diff。