React面试题:React事件机制

 回答思路:用什么来处理事件机制-->传统和现在对比-->触发原理-->这个机制的目的

<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.相比原生浏览器事件,浏览器会给每个事件监听器创建一个事件对象,而对于合成事件来说只有一个事件池对合成事件进行统一管理(创建和销毁),减少了内存消耗,当事件需要被使用时会从池子中复用对象,调用结束后销毁(重置)事件对象上的属性,便于下次复用

​​​​

我非常欢迎友友们在评论区提供任何改进的建议和指正,让我们一起共同进步!

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王 歪歪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值