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

避免事件“穿透”——Vue 中事件冒泡的理解与解决方案

一、事件冒泡是什么?

事件冒泡指的是:当某个元素上的事件被触发后,事件会从该元素向其父级、祖先元素一直“冒泡”传递,直到 document。这意味着,如果父元素绑定了点击事件,子元素触发点击时也可能顺带触发父元素的点击逻辑

<template><div class="card" @click="handleCardClick"><button @click="handleButtonClick">解除绑定</button></div>
</template>

点击按钮时,handleButtonClick 会执行,但由于事件冒泡,handleCardClick 也会被触发。

这就是我们常说的 点击“穿透” 问题。

二、如何阻止事件冒泡? 

只需要加上 .stop,就能阻止事件向上传播:

<button @click.stop="handleButtonClick">解除绑定</button>

三、原生写法对比

如果你是用原生 JavaScript 监听事件,那就需要显式调用 stopPropagation()

button.addEventListener('click', function(event) {event.stopPropagation(); // 阻止冒泡
});

四、总结

  • Vue 中事件“穿透”问题,本质是事件冒泡。

  • 使用 .stop 可以优雅地阻止冒泡。

  • 原生写法则用 event.stopPropagation()

http://www.xdnf.cn/news/1732.html

相关文章:

  • AD16如何设置布线规则
  • JAVA聚焦OutOfMemoryError 异常
  • Spring Cloud Gateway配置双向SSL认证(完整指南)
  • 商显行业革新者:RK3588的8K显示技术如何打造沉浸式商业体验
  • JW01三合一传感器详解(STM32)
  • nextjs国际化
  • 【Rust结构体】Rust结构体详解:从基础到高级应用
  • Linux环境下安装PostgreSQL详细步骤
  • Tailwind CSS 初学者入门指南:项目集成,主要变更内容!
  • LLM学习笔记4——本地部署Docker、vLLM和Qwen2.5-32B-Instruct实现OpenManus的使用
  • JDK(java)安装及配置 --- app笔记
  • Matlab 基于共面螺旋管或共面亥姆霍兹谐振器的超薄低频吸声板
  • Sharding-JDBC 系列专题 - 第九篇:高可用性与集群管理
  • 【JavaScript】`Object` 对象静态方法详解
  • 怎样记忆Precision、Recall?
  • [特殊字符][特殊字符] HarmonyOS相关实现原理聊聊![特殊字符][特殊字符]
  • 【玩转全栈】—— 无敌前端究极动态组件库--Inspira UI
  • 乡村治理数字化平台:信息技术赋能乡村振兴的深度探索
  • 数据结构-选择排序(Python)
  • QT创建软件登录界面(14)
  • JavaScript 的“世界模型”:深入理解对象 (Objects)
  • 理解欧拉公式
  • 弄清C语言中的链表
  • 济南国网数字化培训班学习笔记-第二组-1节-输电线路工程
  • DRF凭什么更高效?Django原生API与DRF框架开发对比解析
  • 如何创建和使用 Hive 视图
  • 【低配置电脑预训练minimind的实践】
  • 【网络安全】社会工程学策略
  • H3C Magic路由器安全警报来啦![特殊字符][特殊字符]
  • Spark-Streaming核心编程(2)