笔记参考vue 虚拟dom和diff算法详解_vue虚拟dom和diff算法_ら陈佚晨的博客-CSDN博客
1,虚拟dom
2,diff算法,具体调用什么函数进行比较
——————————————————————————————————————————
1,虚拟dom
- 虚拟dom是一个js对象
- 原本:数据更新时,要操作dom去重新渲染整个引擎。
- 虚拟dom:根据当前数据生成一个描述该dom的虚拟dom,当数据改变后又生成一个虚拟dom,然后通过diff算法,比较这两个虚拟dom直接的差异,然后采用更新的最优方法,然后更新该dom。
- 虚拟dom核心方法,函数解析?
2,diff算法,具体调用什么函数进行比较(略)
1、比较两个虚拟dom树,对根节点root进行执行patch(oldVnode,newVnode)函数,比较两个根节点是否是相同节点。如果不同,直接替换(新增新的,删除旧的)
2、如果相同,对两个节点执行patchVnode(oldVnode, newVnode),比较属性,文本,以及子节点。当同级属性,文本都相同时,都存在子节点时,会执行updateChildren函数,去进一步比较他们的子节点。