react如何阻止冒泡失败

react阻止冒泡失败的方法:1、在没有涉及到原生事件注册只有react事件时,用【e.stopPropagation()】阻止冒泡;2、需要用到【e.nativeEvent.stopImmediatePropagation()】方法。

react如何阻止冒泡失败

react阻止冒泡失败的方法:

1、在没有涉及到原生事件注册只有react事件时,用e.stopPropagation()阻止冒泡,代码如下:

import React, { Component } from 'react';import './App.css';class App extends Component {  handleClickTestBox = (e) => {    console.warn('handleClickTestBox: ', e);  }  handleClickTestBox2 = (e) => {    console.warn('handleClickTestBox2: ', e);  }  handleClickTestBox3 = (e) => {    e.stopPropagation();    console.warn('handleClickTestBox3: ', e);  }  render() {    return (      
        
          
          
        
      
    );  }}export default App;

登录后复制

2、当用document.addEventListener注册了原生的事件后,用e.stopPropagation()是不能阻止与document之间的冒泡,这时候需要用到e.nativeEvent.stopImmediatePropagation()方法,代码如下:

import React, { Component } from 'react';import './App.css';class App extends Component {  componentDidMount() {    document.addEventListener('click', this.handleDocumentClick, false);  }  handleDocumentClick = (e) => {    console.log('handleDocumentClick: ', e);  }  handleClickTestBox = (e) => {    console.warn('handleClickTestBox: ', e);  }  handleClickTestBox2 = (e) => {    console.warn('handleClickTestBox2: ', e);  }  handleClickTestBox3 = (e) => {    // 阻止合成事件的冒泡    e.stopPropagation();    // 阻止与原生事件的冒泡    e.nativeEvent.stopImmediatePropagation();    console.warn('handleClickTestBox3: ', e);  }  render() {    return (      
        
          
          
        
      
    );  }}export default App;

登录后复制

3、阻止合成事件与非合成事件(除了document)之间的冒泡,以上两种方式都不适用,需要用到e.target判断, 代码如下:

import React, { Component } from 'react';import './App.css';class App extends Component {  componentDidMount() {    document.addEventListener('click', this.handleDocumentClick, false);    document.body.addEventListener('click', this.handleBodyClick, false);  }  handleDocumentClick = (e) => {    console.log('handleDocumentClick: ', e);  }  handleBodyClick = (e) => {    if (e.target && e.target === document.querySelector('#inner')) {      return;    }    console.log('handleBodyClick: ', e);  }  handleClickTestBox = (e) => {    console.warn('handleClickTestBox: ', e);  }  handleClickTestBox2 = (e) => {    console.warn('handleClickTestBox2: ', e);  }  handleClickTestBox3 = (e) => {    // 阻止合成事件的冒泡    e.stopPropagation();    // 阻止与原生事件的冒泡    e.nativeEvent.stopImmediatePropagation();    console.warn('handleClickTestBox3: ', e);  }  render() {    return (      
        
          
          
        
      
    );  }}export default App;

登录后复制

相关免费学习推荐:JavaScript(视频)

以上就是react如何阻止冒泡失败的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2723753.html

(0)
上一篇 2025年3月7日 23:07:34
下一篇 2025年2月26日 15:45:37

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • react中元素和组件的区别是什么

    react中元素和组件的区别:1、元素数据结构是普通对象,而组件数据结构是类或纯函数;2、在JSX中,被元素嵌套的元素会以属性children的方式传入该元素的组件。 react中元素和组件的区别: 1、React 元素 React 元素(…

    2025年3月7日
    200
  • react中如何引进图片

    react中引进图片的方法:1、方式一【import tsIcon from ‘../images/typescript.jpeg’;】;2、方式二【const tsIcon = require( ‘./…

    2025年3月7日
    200
  • react中state和props的区别有哪些?

    区别:props是传递给组件的(类似于函数的形参),而state是在组件内部被组件自己管理的(类似于在一个函数内声明的变量)。state是组件自己管理数据,控制自己的状态,可变;props是外部传入的数据参数,不可变。 本教程操作环境:Wi…

    2025年3月7日
    200
  • react中如何导入图片

    react中导入图片的方法:1、通过import方式导入,代码为【import logo from ‘./asset/logo.jpg’】;2、使用require方法,代码为【 本教程操作环境:windows10、r…

    2025年3月7日
    200
  • jquery和React的区别是什么?

    区别:1、本质上,React是一个UI库,而JQuery是一个工具库或者说是插件库。2、对Dom操作的不同,React提供了一整套的虚拟Dom,所有的操作都在虚拟的Dom上而并非真实的Dom;而Jquery操作的是真实Dom。 相关推荐:《…

    2025年3月7日 编程技术
    200
  • react如何写点击事件

    react写点击事件的方法:1、使用bind绑定,代码为【this.clicked.bind(this,”hello world”)】;2、使用箭头函数,代码为【onClick={(event)=>this.c…

    2025年3月7日
    200
  • react组件有过哪些性能优化

    react的组件性能优化有:1、尽量多使用无状态函数构建组件;2、拆分组件为子组件,对组件做更细粒度的控制;3、运用PureRender,对变更做出最少的渲染;4、运用immutable。 react的组件性能优化有: 1. 尽量多使用无状…

    2025年3月7日
    200
  • react中图片怎么引用

    react中引用图片的方法:首先打开代码编辑器;然后使用require方法引入,代码为【】。 react中引用图片的方法: 通常的方法是 登录后复制登录后复制 但是在React中这样会报错 正确的方法应该是 使用require方法 登录后复…

    2025年3月7日
    200
  • react中页面如何传值

    react中页面传值的方法:1、使用【props.params】方法,代码为【】;2、使用query方式使用很简单,类似于表单中的get方法,传递参数为明文。 react中页面传值的方法: 一、props.params 官方例子使用Reac…

    2025年3月7日
    200
  • react组件几种声明方式是什么

    react组件的声明方式:1、函数式定义的无状态组件;2、es5原生方式【React.createClass】定义的组件;3、es6形式的【extends React.Component】定义的组件。 react组件的声明方式: 1、无状态…

    2025年3月7日
    200

发表回复

登录后才能评论