Notes

事件池

一句话结论:早期 React 为减少频繁分配对象,会复用 SyntheticEvent(事件池);但在较新版本的 React DOM 中事件池已逐步弱化/移除,理解它的意义主要是为了看懂旧资料与 persist 的来历。

1. 事件池在解决什么

  • 高频事件(mousemove/scroll)创建大量事件对象 → GC 压力大
  • 复用对象:事件回调结束后清空字段,放回池中下次再用

2. 带来的副作用

  • 异步访问事件对象会拿到“被清空”的字段
  • 旧方案需要 event.persist() 来阻止回收/清空

3. 现在怎么理解

  • 面试回答:说明“曾经有池化、为什么要池化、池化的问题、现在的演进”
  • 业务实践:不要长期持有事件对象,必要时提前解构你需要的数据

关联阅读

cd ..