React并不会把所有的处理函数直接绑定到真实的节点上,而是把所有的事件都绑定到结构的在外层,这个事件监听器上维持了一个映射来保存所有组件内部的事件监听和处理函数
当组件挂载或卸载的时候,只是在这个统一的事件监听器上插入或删除一些对象
当事件发生时,首先被这个统一的事件监听器处理,然后在映射里找到真正的事件处理函数并调用
当事件发生时,首先被这个统一的事件监听器处理,然后在映射里找到真正的事件处理函数并调用
这样做的有点是解决了兼容性的问题,并且简化了事件处理和回收机制,但是有些事件React并没有实现,比如window的resize事件
之所以会将事件委托从document中移到root的DOM元素上,是为了可以更加安全地进行新旧版本的React树的嵌套