Notes

初始阶段的状态更新

一句话结论:初次渲染(mount)会建立 Hook 与队列;如果更新发生在“render 过程中”会触发重渲染收敛状态,而正常情况下更新发生在 commit 之后并进入下一次调度。

1. mount 时做了什么

  • 创建 Hook 节点:写入 initialState/baseState
  • 创建 queue:准备 pending 环、dispatch

2. 两类“初始阶段更新”

  • commit 后的正常更新:事件触发 → dispatch 入队 → scheduleUpdate
  • render phase update(不推荐):render 内调用 dispatch → React 可能重跑 render

3. 面试提示

  • 强调“render 必须纯”:render phase update 会让流程复杂且性能不可控

关联阅读

cd ..