回答思路:用什么来处理事件机制-->传统和现在对比-->触发原理-->这个机制的目的
<div onClick={this.handleClick.bind(this)}>合成事件:onClick,onChange等</div>
用什么来处理事件机制:React使用了一种“合成事件”(Synthetic Event)的机制来处理事件。
传统和现在对比:在传统的开发中,事件处理需在DOM元素上注册事件侦听器。而在react中,如click事件不是绑定到DOM上,而是冒泡到document处监听所有的事件。
触发原理:当事件在react元素上触发时,react会创建一个合成事件对象,并将其传递给事件处理函数,合成事件对象是react自己实现的,里面封装了原生浏览器的细节(为了更好的跨浏览器)。
如果想阻止这个事件冒泡需用event.preventDefault,而不是event.stopPropagation,因为react用了事件委托机制。
这个机制的目的:合成事件(react事件机制)的目的:
1.更好解决了浏览器的兼容问题和跨浏览器开发
2.相比原生浏览器事件,浏览器会给每个事件监听器创建一个事件对象,而对于合成事件来说只有一个事件池对合成事件进行统一管理(创建和销毁),减少了内存消耗,当事件需要被使用时会从池子中复用对象,调用结束后销毁(重置)事件对象上的属性,便于下次复用
我非常欢迎友友们在评论区提供任何改进的建议和指正,让我们一起共同进步!