高优先级插队
一句话结论:当高优先级更新到来时,React 会优先处理它;正在进行的低优先级 render 可能被暂停,甚至被放弃并以新优先级重新开始。
1. 发生“插队”的常见场景
- 正在渲染一个 Transition 更新(低优先级)
- 用户输入/点击触发同步或用户阻塞级更新(高优先级)
2. React 如何做到
- 把不同来源的更新映射到不同 Lane(位图优先级)
- 每次调度选择“最高优先级的 lanes”作为下一轮 render 的目标
3. 代价与收益
- 收益:交互优先,减少输入延迟
- 代价:低优先级 render 可能白做(被丢弃后重来),增加一些重复计算