Notes

根节点事件绑定

一句话结论:React 把大量事件监听集中绑定在根容器(而不是每个节点),通过事件冒泡定位到目标 Fiber,再按组件树路径收集并执行回调;React 17 起事件委托从 document 下沉到 root 容器。

1. 为什么要绑定在根节点

  • 减少监听器数量与内存占用
  • 新增/删除组件不需要反复 add/remove 原生监听器

2. 捕获与冒泡怎么支持

  • 在根上分别绑定 capture/bubble 版本的监听
  • 分发时按“捕获从外到内、冒泡从内到外”的顺序执行

3. React 17 的变化(常见面试点)

  • 事件委托从 document 迁移到 root 容器
  • 目的:多 root 共存更隔离,减少与非 React 代码互相影响

关联阅读

cd ..