Notes

reconcileSingleElement

一句话结论:单元素 Diff 的核心是“用 key 在旧兄弟链上找到同身份节点,再用 type 判断能否复用”;能复用就复用 Fiber,否则删旧建新。

1. 典型步骤(概念)

  1. 遍历旧的 child 兄弟链,寻找 key 相同的节点
  2. 找到后比较 type:
    • 相同:复用该 Fiber(并删除其余不匹配兄弟)
    • 不同:删除找到的旧 Fiber,继续找(或最终新建)
  3. 没找到:直接创建新 Fiber

2. 为什么要删除“其余兄弟”

  • newChild 只有一个:旧的其它兄弟在新树中不存在,必须删除

3. 面试要点

  • key 先于 type:先确认“是不是同一个人”,再确认“是不是同一种组件”

关联阅读

cd ..