更新阶段的 dispatch
一句话结论:dispatch 做的事是“分配 lane → 创建 update → 入队 → 触发 root 调度”;真正的 state 计算发生在下一次 render 的更新队列处理阶段。
1. dispatch 的典型路径(概念)
requestUpdateLane:根据上下文/事件优先级分配 lane- 创建 update:写入 action、lane(可能计算 eagerState)
- 入队:挂到 Hook 的
queue.pending环形链表 scheduleUpdateOnFiber:把 lane 标记到 root 并触发调度
2. 为什么有 eagerState
- 对
useState这类 reducer 可预测的情况,尝试提前算出 nextState - 若 nextState 与 current 相同,可跳过一次渲染(优化路径)