react中运行事件处理程序使用SyntheticEvent类,它是在每个浏览器都一致的跨浏览器的事件系统,它由react独立处理,以保持各浏览器的一致。使用起来比较方便,尤其是在更新处理这方面,可以大大减轻react开发者的开发工作,react事件机制的设计灵感受到了许多不同的语言和经典的处理程序,它同时避免了很多复杂的内容
大致分为三个重要概念:事件合成、阻止冒泡、可取消
事件合成
事件合成是react使用的一种独特技术,它将浏览器提供的原生事件应射到SyntheticEvent对象,该对象具有不同浏览器上相同的属性方法,因为react内部处理了事件,所以在使用过程中使用的事件都是一致的SyntheticEvent对象
阻止冒泡
react事件机制也支持冒泡机制,它可以从根节点到叶节点的一系列的触发,阻止冒泡的机制可以阻止事件的进一步传播,因此触发的父节点的事件不会接收到事件通知
可取消
react可以取消某些事件处理,通过调用SyntheticEvent类中的preventDefault()方法,它可以阻止默认行为或者其它行为,比如在表单使用中可以取消表单提交事件,同时也支持重新设置和自定义参数,调用SyntheticEvent类中的stopPropagetion()方法可以阻止冒泡,在调用事件处理函数时,可以给它传递相关参数或者自定义参数,并且可以在处理程序中访问这些参数及数据