事件原理

React 为什么有自己的事件系统?

创建一个兼容全浏览器的事件系统,以此抹平不同浏览器的差异。

v17 之前 React 事件都是绑定在 document 上,v17 之后 React 把事件绑定在应用对应的容器 container 上,将事件绑定在同一容器统一管理,防止很多事件直接绑定在原生的 DOM 元素上。造成一些不可控的情况。

由于不是绑定在真实的 DOM 上,所以 React 需要模拟一套事件流:事件捕获-> 事件源 -> 事件冒泡,也包括重写一下事件源对象 event 。

什么是事件合成 ?

如何实现的批量更新?

事件系统如何模拟冒泡和捕获阶段?

如何通过 dom 元素找到与之匹配的fiber?

为什么不能用 return false 来阻止事件的默认行为?

事件是绑定在真实的dom上吗?如何不是绑定在哪里?

V17 对事件系统有哪些改变?

如何处理事件源对象

一次点击到事件执行都发生了什么?