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

网站制作者湖南网站建设企业

网站制作者,湖南网站建设企业,app开发公司重庆,南川网站建设react自身实现了一套自己的事件机制,包括事件注册、事件的合成、事件冒泡、事件派发等,虽然和原生的是两码事,但也是基于浏览器的事件机制下完成的。 react 的所有事件并没有绑定到具体的dom节点上而是绑定在了document 上,然后由…

react自身实现了一套自己的事件机制,包括事件注册、事件的合成、事件冒泡、事件派发等,虽然和原生的是两码事,但也是基于浏览器的事件机制下完成的。

react 的所有事件并没有绑定到具体的dom节点上而是绑定在了document 上,然后由统一的事件处理程序来处理,同时也是基于浏览器的事件机制(冒泡),所有节点的事件都会在 document 上触发。

React事件与原生事件的执行顺序又是如何?

代码示例

import React from 'react';
class App extends React。Component {constructor(props) {super(props);this.parentRef = React.createRef();this.childRef  = React.createRef();}componentDidMount() {console.log('react componentDidMount');this.parentRef.current?.addEventListener('click', () => {console.log('父元素:原生事件 父元素 DOM 事件监听');});this.childRef.current?.addEventListener('click', () => {console.log('子元素:原生事件 子元素 DOM 事件监听');});document.addEnvetListener('click', e => {console.log('document:原生document DOM 事件监听');});}parentClickFun = () => {console.log('React:父元素事件监听'); };childClickFun = () => {console.log('React:子元素事件监听'); }render() {return (<div ref={this.parentRef} onClick={this.parentClickFun}><div ref={this.childRef} onClick={this.childClickFun}>事件执行</div></div>);}
}

输出:

子元素:原生事件 子元素 DOM 事件监听

父元素:原生事件 父元素 DOM 事件监听

React:子元素事件监听

React:父元素事件监听

document:原生document DOM 事件监听

 事件执行顺序:

1、先执行 子元素的DOM事件

2、执行 父元素的DOM事件

3、执行 React  子元素的事件

4、执行 React 父元素的事件

5、 最后执行 document上的DOM事件的监听

由上总结:

1、React 中所有事件都挂载在document对象上

2、先触发真是DOM事件,再触发React事件

3、最后执行document 上挂载的事件

如何阻止冒泡行为?

1、阻止合成事件的冒泡, e.stopPropagation();

2、阻止合成事件与最外层document 上的事件的冒泡:e.nativeEvent.stop

3、阻止合成事件与原生事件的冒泡:

document.body.addEventListener('click', e => {if (e.target && e.target.matches('div.code')) {return;}this.setState({active: false});
});

总结

React 最终会绑定在document这个DOM上

React有一套自己的合成事件机制

http://www.yayakq.cn/news/850167/

相关文章:

  • 想接外包做网站拍卖公司宣传册设计样本
  • flash做ppt的模板下载网站有哪些wordpress category模板
  • 网站的开发包括什么东西星子网新闻事件
  • 建网站的八个步骤苏州沧浪区做网站的
  • 做网站哪个公司最好企业网站前期建设方案案例
  • 网站值不值得做seo网站设计做什么
  • 海纳企业网站建设模板汕头市企业网站建设哪家好
  • 花80亿美元建空间站网页版查询系统制作
  • 网站建栏目建那些如何将aaa云主机做网站
  • 徐州网站二次开发seo工具助力集群式网站升级
  • 做网站多少钱西宁君博领先淘宝seo优化推广
  • 南安淘宝网站建设封装系统如何做自己的网站
  • 专做校园购物网站音乐网站开发需要什么语言工具
  • 宠物出售的网站怎么做it建设人才网
  • 驾校官方网站 模板汽车商城网站模板免费下载
  • 三明商城网站开发设计深圳品牌网站设计专家
  • discuz 网站搬家高端电子商务网站建设
  • 减肥养生网站建设服务公司荡神改名
  • 做网站的硬件成本中国建设银行官网站信用卡管理
  • 精品课程网站开发环境网站建设费用 优帮云
  • 企业移动端建设与网站建设拔别人的网站做网站合法吗
  • 友汇网网站建设管理后台设置网站备案邮寄资料
  • 贵州省住房和城乡建设网站wordpress图片主题破解版
  • 河南做网站的公司有哪些手机百度网站证书过期
  • 大学生创新创业网站建设内容衣服搭配网站建设
  • 私人免费网站怎么下载公司网址有哪些
  • 东莞整站优化app大全
  • 北京商业设计网站有哪些建筑设计网站
  • 大连城乡建设网站省好多会员app
  • 去哪个网站做兼职wordpress页面布局