Notes

合并多个更新触发

一句话结论:合并(batching)让同一时机触发的多次更新只产生一次渲染;React 18 的自动批处理把范围从“事件回调”扩展到“更多异步边界”。

1. 为什么要合并

  • 多次 setState 各自渲染会浪费计算与 DOM 更新
  • 合并后:只做一次 render/commit,性能更稳定

2. React 18 自动批处理要点

  • 不仅是 React 事件回调内:Promise、setTimeout 等也会被批处理(默认)
  • 本质:把调度推迟到“本轮结束的统一时机”(常用 microtask 实现)

3. 如何“跳出”批处理

  • 需要强制同步落地时使用 flushSync(代价是可能更卡)

关联阅读

cd ..