Notes

初始化 State Hook

一句话结论:useState 在 mount 时会创建一个 Hook 节点与更新队列,并返回当前 state + 绑定了 Fiber 的 dispatch;后续更新只是往队列里塞 update,再触发调度。

1. mountState 的关键产物(概念)

  • hook.memoizedState:当前 state
  • hook.queue:更新队列(包含 pending 环形链表、dispatch 等)
  • dispatch:闭包中绑定了 fiber 与 queue,用于发起更新

2. lazy init

  • useState(() => initial) 只在 mount 执行一次,用于避免重复计算

3. 常见误区

  • setState 不是“立刻改 state”,而是“入队 + 调度”,在 render 时才计算新 state

关联阅读

cd ..