为了解决跨浏览器兼容性问题,React 会将浏览器原生事件(Browser Native Event)封装为合成事件(SyntheticEvent)传入设置的事件处理器中。这里的合成事件提供了与原生事件相同的接口,不过它们屏蔽了底层浏览器的细节差异,保证了行为的一致性。另外有意思的是,React 并没有直接将事件附着到子元素上,而是以单一事件监听器的方式将所有的事件发送到顶层进行处理。这样 React 在更新 DOM 的时候就不需要考虑如何去处理附着在 DOM 上的事件监听器,最终达到优化性能的目的。
1、React 事件的命名是驼峰标志,比如: onClick 而不能是 onclick。
2、在 JSX 中你可以传一个方法去处理函数,而不是一个字符串。
3、React事件并没有原生的绑定在真实的DOM上(所有事件绑定在document上),而是使用了 行为委托 方式实现事件机制。