初始化 State Hook
一句话结论:
useState在 mount 时会创建一个 Hook 节点与更新队列,并返回当前 state + 绑定了 Fiber 的 dispatch;后续更新只是往队列里塞 update,再触发调度。
1. mountState 的关键产物(概念)
hook.memoizedState:当前 statehook.queue:更新队列(包含pending环形链表、dispatch 等)dispatch:闭包中绑定了 fiber 与 queue,用于发起更新
2. lazy init
useState(() => initial)只在 mount 执行一次,用于避免重复计算
3. 常见误区
setState不是“立刻改 state”,而是“入队 + 调度”,在 render 时才计算新 state