Notes

renderWithHooks

一句话结论:renderWithHooks 是函数组件渲染的入口:它初始化 Hook 运行环境(dispatcher/指针),执行组件函数,并在结束时把本次渲染产生的 Hook 链表挂回 Fiber。

1. 它做的三件核心事(概念)

  • 准备上下文:标记 currentlyRenderingFiber,重置 hook 指针
  • 选择 dispatcher:区分 mount/update(不同 hook 实现函数)
  • 执行组件函数:在调用 useState/useEffect/... 时推进 Hook 链表

2. render phase update 的处理

  • 如果 render 过程中触发了更新(不推荐),React 可能会重跑渲染以收敛状态
  • 这也是“Hooks 必须无副作用、保持顺序”的原因之一

关联阅读

cd ..