这里的事件:React内置的DOM组件中的事件
1.给document注册事件
2.几乎所有的元素的事件处理,均在document的事件中处理
1.一些不冒泡的事件,是直接在元素上监听的
2.一些document上面没有的事件,直接在元素上监听
3.在document的事件处理,React会根据虚拟DOM树的完成事件函数的调用
4.React的事件参数,并非真实的DOM事件参数,是React合成的一个的对象,该对象类似于真实的DOM的事件参数
1.stopPropagation,阻止事件在虚拟DOM树中冒泡
2.nativeEvent,可以得到真实的DOM事件对象
3.为了高效执行效率,React使用事件对象池来处理事件对象
**注意事项**
1.如果给真实的DOM注册事件,阻止了事件冒泡,则会导致react的相应事件无法触发
2.如果给真实的DOM注册事件,事件会先于React事件运行
3.通过React的事件中阻止事件冒泡,无法阻止真实的DOM事件冒泡
4.可以通过nativeEvent.stopImmediatePropagation(),阻止document上剩余事件的执行
5.在事处理程序中,不要异步的使用事件对象,如果一定要使用,需要调用persist函数
网友评论