react———react合成事件

本文深入探讨React合成事件机制,解析其如何避免DOM事件滥用及内存消耗,通过SyntheticEvent实现跨浏览器兼容性。揭示React事件与原生事件的执行顺序及混用风险。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

React合成事件

react合成事件

如果DOM上绑定了过多的事件处理函数,整个页面响应以及内存占用可能都会受到影响。React为了避免这类DOM事件滥用,同时屏蔽底层不同浏览器之间的事件系统差异,实现了一个中间层——SyntheticEvent。

  1. 当用户在为onClick添加函数时,React并没有将Click时间绑定在DOM上面。
  2. 而是在document处监听所有支持的事件,当事件发生并冒泡至document处时,React将事件内容封装交给中间层SyntheticEvent(负责所有事件合成)
  3. 所以当事件触发的时候,对使用统一的分发函数dispatchEvent将指定函数执行。

二.合成事件和原生事件的执行顺序是什么?可以混用吗?

1.React的所有事件都通过 document进行统一分发。当真实 Dom触发事件后冒泡到 document后才会对 React事件进行处理。

2.所以原生的事件会先执行,然后执行 React合成事件,最后执行真正在 document上挂载的事件

3.React事件和原生事件最好不要混用。原生事件中如果执行了 stopPropagation方法,则会导致其他 React事件失效。因为所有元素的事件将无法冒泡到 document上,导致所有的 React事件都将无法被触发。。

 

 

参考:https://www.jianshu.com/p/8d8f9aa4b033

转载于:https://www.cnblogs.com/celine-huang/p/11528223.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值