React事件摘录
JSX 中以内联(inline)的方式<button onClick={this.increase}>+</button> 合成事件 SyntheticEventReact 实现了一个“合成事件”层(synthetic event system),这个事件模型保证了和 W3C 标准保持一致,所以不用担心有什么诡异的用法,并且这个事件层消除了 IE 与 W3C 标准实现之间的兼容问题。 事件委托“合成事件”会以事件委托(event delegation)的方式绑定到组件最上层,并且在组件卸载(unmount)的时候自动销毁绑定的事件。 什么是“原生事件”?比如你在 componentDidMount 方法里面通过 addEventListener 绑定的事件就是浏览器原生事件。 如果混用“合成事件”和“原生事件”,比如一种常见的场景是用原生事件在 document 上绑定,然后在组件里面绑定的合成事件想要通过 e.stopPropagation() 来阻止事件冒泡到 document,这时候是行不通的,参见 Event delegation,因为 e.stopPropagation 是内部“合成事件” 层面的,解决方法是要用 e.nativeEvent.stopImmediatePropagation() handleClick(e) { promise.then(() => doSomethingWith(e)); } 参数传递给事件处理函数传递额外参数的方式: render: function() { return <p onClick={this.handleClick.bind(this,'extra param')}>; },handleClick: function(param,event) { // handle click } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |