而diff算法就是更高效地通过对比新旧Virtual DOM来找出真正的Dom变化之处 传统diff算法通过循环递归对节点进行依次对比,效率低下,算法复杂度达到 O(n^3),react将算法进行一个优化,复杂度姜维O(n),两者效率差距如下图:二、原理 react中diff算法主要遵循三个层级的策略:• tree层级 • conponent 层级 •...
React diff 算法的原理主要基于以下三个策略: 同一层级的节点进行比较:React 只会比较同一层级的节点,如果节点在不同的层级,React 会直接销毁旧节点并创建新节点。这是基于 Web 应用的特性:跨层级的节点移动操作在实际应用中相对较少。 不同类型的元素会产生不同的树:如果两个元素的类型不同,React 会直接销毁旧元...
1、两个相同组件产生类似的 DOM 结构,不同的组件产生不同的 DOM 结构; 2、对于同一层次的一组子节点,它们可以通过唯一的 id 进行区分。 diff算法的比较,主要是从两个层面比较 1、不同组件类型的比较 2、同一组件不同属性改变时比较