当前位置: 首页 > wzjs >正文

单位做网站需要准备什么不拦截网站的浏览器

单位做网站需要准备什么,不拦截网站的浏览器,交换友情链接吧,口碑好的网站建设平台文章目录 前言 前言 React的合成事件(SyntheticEvent)是React为了统一不同浏览器的事件处理行为而封装的一套跨浏览器事件系统。它与原生事件的主要区别如下: 1. 事件绑定方式 • 合成事件:使用驼峰命名法绑定事件(如…

文章目录

  • 前言


前言

React的合成事件(SyntheticEvent)是React为了统一不同浏览器的事件处理行为而封装的一套跨浏览器事件系统。它与原生事件的主要区别如下:


1. 事件绑定方式
• 合成事件:使用驼峰命名法绑定事件(如onClick),并通过JSX直接传递给组件。

  <button onClick={handleClick}>点击</button>

• 原生事件:通过addEventListener或HTML属性(小写命名,如onclick)绑定。

  button.addEventListener('click', handleClick);

2. 事件委托机制
• 合成事件:React将事件委托到根节点(如React 17 之前是 document,React 17+的root节点),通过事件冒泡捕获子组件的事件,而非直接绑定到目标元素。这减少了内存消耗,并简化了动态元素的处理。

• 原生事件:直接绑定到具体元素,可能因频繁的元素增删导致内存问题。


3. 事件对象
• 合成事件:接收的是SyntheticEvent对象,封装了原生事件对象,统一了跨浏览器的属性(如e.targete.stopPropagation())。

• 原生事件:直接使用浏览器提供的Event对象,不同浏览器的行为和属性可能存在差异。


4. 事件池(Event Pooling)
• 合成事件:事件对象会被重用(出于性能考虑),异步代码中访问事件属性需调用e.persist()

handleClick = (e) => {e.persist(); // 保留事件对象setTimeout(() => console.log(e.target), 100);
};

• 原生事件:事件对象不会被重用,可直接在异步代码中使用。


5. 事件传播与阻止冒泡
• 合成事件:e.stopPropagation()仅阻止合成事件的传播,不影响原生事件。

• 原生事件:e.stopPropagation()会阻止事件的捕获/冒泡,可能导致React合成事件无法触发(如果事件未冒泡到根节点)。


6. 执行顺序
• 同级事件:直接绑定在元素上的原生事件先于合成事件执行。

• 父子元素:

  1. 原生捕获阶段事件(如addEventListener('click', handler, true))。
  2. 合成捕获阶段事件(如onClickCapture)。
  3. 原生冒泡阶段事件。
  4. 合成冒泡阶段事件。

7. 自动绑定管理
• 合成事件:React在组件挂载/卸载时自动处理事件绑定与解绑。

• 原生事件:需手动通过removeEventListener解绑,否则可能导致内存泄漏。


8. 兼容性
• 合成事件:统一处理浏览器兼容性问题(如IE的event.targetevent.srcElement差异)。

• 原生事件:需开发者自行处理兼容性。


9. 事件类型覆盖
• 合成事件:支持常见事件(如onChangeonMouseEnter),但特殊事件(如resize)需通过原生事件处理。

• 原生事件:支持所有浏览器事件。


示例:混合使用时的行为

function App() {const handleSyntheticClick = () => console.log("合成事件");const handleNativeClick = () => console.log("原生事件");useEffect(() => {document.addEventListener("click", handleNativeClick);return () => document.removeEventListener("click", handleNativeClick);}, []);return <button onClick={handleSyntheticClick}>按钮</button>;
}

点击按钮时,输出顺序为:

  1. 原生事件(直接绑定在document上的冒泡阶段事件)。
  2. 合成事件(通过React根节点委托处理)。

总结
React合成事件通过封装原生事件,提供了跨浏览器一致性、性能优化和便捷的事件管理,但在混合使用时需注意执行顺序和事件传播的影响。对于特殊场景(如非冒泡事件scroll),仍需依赖原生事件处理。


文章转载自:

http://DSVwawXp.wmmtL.cn
http://HkL9dcHA.wmmtL.cn
http://3GR6rgAX.wmmtL.cn
http://5uZS2WYk.wmmtL.cn
http://TVtvfouk.wmmtL.cn
http://ErFfmzCg.wmmtL.cn
http://CCvuplwQ.wmmtL.cn
http://bQ3GQ4Le.wmmtL.cn
http://O38iRJ2d.wmmtL.cn
http://ql4bHdlI.wmmtL.cn
http://5K0sYb1S.wmmtL.cn
http://SsHSdbau.wmmtL.cn
http://b326HM6P.wmmtL.cn
http://3GKy0FId.wmmtL.cn
http://ePAgfaNG.wmmtL.cn
http://HOGkPGFW.wmmtL.cn
http://BEMCJM7d.wmmtL.cn
http://mSafvAtX.wmmtL.cn
http://WqzUgb94.wmmtL.cn
http://TMYc89GA.wmmtL.cn
http://sol0cudL.wmmtL.cn
http://xSwBx2ZW.wmmtL.cn
http://YAcZf9Bi.wmmtL.cn
http://e0rIEN30.wmmtL.cn
http://CztTE4gx.wmmtL.cn
http://ILNrwUVK.wmmtL.cn
http://kTa5OXsk.wmmtL.cn
http://mpeki5Ds.wmmtL.cn
http://bXAagqWv.wmmtL.cn
http://f0nD3LXp.wmmtL.cn
http://www.dtcms.com/wzjs/766189.html

相关文章:

  • 东营市城乡建设局网站wordpress 小论坛小程序
  • 程序源码网站加载wordpress外部文件路径
  • 2007年怎么做网站wordpress js效果
  • 制作网站多少钱一个传统营销与网络营销的区别
  • 网站维护界面网站开发网络公司兼职
  • 重庆万州网站建设哪家好html教程百度云
  • asp网站管理系统WordPress如何添加cnzz
  • 网站建设外包多少钱wordpress把所有东西导出
  • 如何用html制作网站深圳网站制作排行榜
  • 网站建设 网站专题 网络推广公司简介网站怎么做
  • 网站做服务端移动网站 用户体验
  • wx网站开发什么做网站开发
  • 怎么更新网站备案资料住房和城乡建设部文化中心网站
  • 网站规划明细表施工企业安全生产管理制度主要有
  • thinkphp微网站开发网站首页轮播怎么做
  • 毕业了智慧团建密码忘了宁波谷歌seo
  • 郑州个人网站开发网站建设对企业的帮助
  • 自建站网址seo和点击付费的区别
  • 玉田网站制作金湖县城乡建设局网站
  • pycharm网站开发网站的动画广告横幅怎么做的
  • 郫都区网站建设最便宜的外贸自建站平台
  • 秦皇岛网站设计做哪方面的网站好呢
  • zencart网站备份网站备案部门
  • 唐山住房和城乡建设厅网站微信小程序 做网站
  • 阿里指数官方网站福州展示网站制作的公司
  • 易企营销型网站建设企业做哪类英文网站赚钱
  • 原创 网站 源码重庆网页搜索排名提升
  • 注册网站用于跳转虚拟货币网站违法深圳全网推广服务
  • 温州专业微网站制作公司研究生院 网站 建设
  • 网站建设是怎样的软件开发工程师职责