react 事件冒泡 阻止默认事件

事件冒泡

e.stopPropagation

复制代码
function Button({ onClick, children }) {
  return (
    <button onClick={e => {
      e.stopPropagation();
      onClick();
    }}>
      {children}
    </button>
  );
}

export default function Toolbar() {
  return (
    <div className="Toolbar" onClick={(e) => {
      
      alert('你点击了 toolbar !');
    }}>
      <Button onClick={() => alert('正在播放!')}>
        播放电影
      </Button>
      <Button onClick={() => alert('正在上传!')}>
        上传图片
      </Button>
    </div>
  );
}
  • 点击播放电影,会调用播放电影的事件+弹出点击了boolbar这两个,这里在子组件中添加了阻止事件冒泡,他就不会再去执行父组件的""点击了boolbar"" 这个函数

阻止默认行为

复制代码
export default function Signup() {
  return (
    <form onSubmit={e => {
      e.preventDefault();
      alert('提交表单!');
    }}>
      <input />
      <button>发送</button>
    </form>
  );
}
  • 不要混淆 e.stopPropagation() 和 e.preventDefault()。它们都很有用,但二者并不相关+
  • e.stopPropagation() 阻止触发绑定在外层标签上的事件处理函数。
  • e.preventDefault() 阻止少数事件的默认浏览器行为。
相关推荐
xiaobaoyu1 小时前
vue2+element开发中问题和解决方式
前端
KaMeidebaby1 小时前
卡梅德生物技术快报 | 核酸适配体文库测序:核酸适配体文库测序的技术原理、实验流程与数据解析
前端·网络·数据库·人工智能·算法
Hilaku2 小时前
为什么在 2026 年,MPA(多页面应用)正在悄悄复辟?
前端·javascript·程序员
幸福小宝2 小时前
eslint和prettier
前端
anyup2 小时前
终于在今天入选了 Gitee GVP,这真值得庆祝~
前端·uni-app·开源
幸福小宝2 小时前
husky和lint-staged
前端
悟空瞎说2 小时前
iOS 高效绘图
javascript
Slice_cy3 小时前
Mint 自研框架设计与实现:从重复开发走向配置驱动(五)
前端·后端·架构
寒水馨3 小时前
Windows下载、安装 Tailwind CSS-v4.3.3(附安装包tailwindcss-windows-x64.exe)
前端·css·前端开发·tailwind css·utility-first·css 框架·独立 cli
西楼_3 小时前
一文读懂React19究竟更新了什么
前端