一、虚拟 DOM (virtual dom)
diff 算法首先要明确一个概念就是 diff 的对象是虚拟DOM(virtual dom),更新真实 DOM 是 diff 算法的结果。
注:virtual dom 可以看作是一个使用 JavaScript 模拟了 DOM结构 的树形结构,这个树结构包含整个DOM结构的信息
二、为什么使用 diff 算法?
1、页面结构庞大时,DOM 操作代价太高,可维护性差,因此要减少 DOM 操作;
2、虚拟 DOM 很轻量,对虚拟 DOM 操作快;
3、diff 算法 是找出本次 DOM 需要更新的节点进行更新,其余不更新,对 DOM 进行原地复用,减少 DOM 创建性能耗费,可以减少浏览器页面的重绘。
三、diff 算法原理
源码