dom是浏览器中的概念,用js对象来表示页面上的元素,并提供了操作dom对象的api
react中虚拟dom:用js对象来模拟页面上的dom与dom嵌套(框架中的概念)
DOM树的概念:
一个网页的呈现
1、浏览器请求服务器获取html代码
浏览器首先要在内存中,解析DOM结构,并在浏览器内存中,渲染出一颗dom树
3、浏览器把dom树呈现到页面上
目的:为了 实现页面元素的高效更新
differ算法
tree diff:新旧两颗dom树,逐层对比的过程,就是tree diff;当整颗dom逐层对比完毕,则所有需要被按需更新的元素,必然能够找到
compose diff:在进行 tree diff的时候,每一次中,组件级别的对比。若对比前后,组件的类型相同,暂时认为此组件不需要被更新;若对比前后,组件类型不同则需要移除组件,创建新组建,并追加到页面上
element diff:在进行组件对比的时候,如果两个组件类型相同,则需要进行元素级别的对比