执行上下文 executionContext
一句话结论:
executionContext是一个位标记,用来标识 React 当前处于哪个关键阶段(render/commit 等);它帮助 React 防止重入、决定何时允许同步刷新、以及如何处理嵌套更新。
1. 为什么需要它
- React 的内部流程很复杂:事件触发更新、render、commit、effect,又可能触发新更新
- 没有“当前所处阶段”的标识,很难避免在错误时机做错误的事(例如 commit 中再次进入 render)
2. 它通常用于哪些决策
- 现在是否正在 render?能否安全地开始一次新的 render?
- 现在是否正在 commit?某些更新是否应该延后?
- 是否处于批处理上下文?要不要合并更新再统一调度?
3. 面试表达建议
- 把它讲成“状态机开关”:保证内部流程有序、可预测
- 结合例子:
flushSync为什么能强制同步(本质是改变调度/上下文规则)