Notes

栈结构 与 workInProgress

一句话结论:React 用“workInProgress 指针 + Fiber 的 return/sibling 链”模拟深度优先遍历,避免依赖真实调用栈,从而支持暂停与恢复。

1. 为什么不用真实递归栈

  • 真实递归不可控:难以在中途安全暂停并恢复
  • Fiber 的目标:把工作变成“可调度的迭代”,让出主线程

2. workInProgress 是什么

  • 指向当前正在处理的 Fiber 节点
  • beginWork 进入子树:workInProgress = workInProgress.child
  • completeWork 返回:沿 return 回溯,并通过 sibling 转向兄弟

3. 结果:中断恢复很自然

  • 暂停时只需保留当前 workInProgress 与相关上下文
  • 下次继续时从该指针恢复遍历

关联阅读

cd ..