React中Diff算法又称为调和算法,对应函数名为以前看过一些文章将Diff算法表述为两颗Fiber树的比较,这是不正确的,实际的Diff过程是一组现有的Fiber节点和新的由节点Diff又分为两种:。以下React版本为17.0.1,代码文件为单节点Diff单节点Diff比较简单,只有key相同并且type相同的情况才会尝试复用节点,否则会返回新的节点。单节点大部分情况下我们都不会去赋值key,所以它们默认为null,也是相同的。第二轮遍历针对key不同或顺序不同的情况,可能情况如下:第二轮的遍历会稍微复杂一点,后文在细讲。这里存在一个变量当复用的节点举个例子:abcd均为key值。由这个例子可以看出,React中将右侧不需要移动的节点作为参照,将需要移动的节点都是统一从左向右移动的。
暂无评论