Vue 事件机制深度剖析:$event、e.target 与 e.currentTarget 的本质区别
Vue 事件机制深度剖析$event、e.target 与 e.currentTarget 的本质区别1.1 前言在 Vue 开发中我们经常需要处理 DOM 事件。当调用事件处理函数时我们通常希望访问原生 JavaScript 事件对象来获取更多的信息比如点击坐标、目标元素等。这就涉及到一个关键语法在 Vue 事件中传入 $event。同时理解事件对象中的 e.target 和 e.currentTarget 是掌握事件委托和冒泡机制的基础。1.2 基础用法如何正确传入 $event在 Vue 的模板语法中我们不需要手动调用event.stopPropagation()等方法而是将原生事件对象传递给方法即可。1.2.1 语法格式在方法名后直接拼接$event参数Vue 会自动将事件对象注入。1.2.2 代码示例div idapp button clickhandleClick(Action, $event)点击我/button /div script export default { methods: { handleClick(message, event) { console.log(message); // 输出 Action console.log(event); // 输出原生事件对象 } } } /script2.1 核心概念辨析e.target 与 e.currentTarget要理解它们的区别首先要明白事件传播冒泡的机制。在事件处理函数被触发时e.target和e.currentTarget指向的对象通常是不同的。2.1.1 e.currentTarget 的含义e.currentTarget指向的是当前绑定事件监听器的那个元素。换句话说它代表事件被附加到的 DOM 节点。2.1.2 e.target 的含义e.target指向的是实际触发事件的那个子元素。这就是说如果用户点击的是嵌套元素内部的一个按钮e.target将指向这个按钮而不是绑定了监听器的父容器。2.2 交互流程图事件触发时的变化为了更直观地理解我们可以通过 Mermaid 流程图来展示当点击子元素时e.target和e.currentTarget的变化过程。用户点击子元素 Button事件触发 e.targete.target 指向 Button 标签事件冒泡传播父容器接收事件触发绑定在父容器上的监听器函数执行中 e.currentTargete.currentTarget 指向 UL 标签3.1 场景演示父子元素嵌套让我们通过一个具体的 HTML 结构来验证上述概念。假设我们有一个父容器 UL里面包含多个 LI并且点击 UL 或 LI 都会触发函数。3.1.1 实现代码div idapp ul clicklogEvent liItem 1/li liItem 2/li liItem 3/li /ul /div script export default { methods: { logEvent(event) { console.log(e.target 标签名, event.target.tagName); console.log(e.currentTarget 标签名, event.currentTarget.tagName); console.log(-------------------); } } } /script3.1.2 执行结果分析当我们点击 LI 时输出结果如下e.target输出 LI 实际点击的对象e.currentTarget输出 UL 绑定了监听器的对象3.2 场景演示事件委托理解e.target和e.currentTarget的最大价值在于实现“事件委托”。事件委托允许我们将事件监听器绑定到父容器上而不是每个子元素上从而提高性能。3.2.1 逻辑判断通常我们在父元素监听点击事件后需要判断e.target是否为我们期望的元素。3.2.2 代码实现methods: { handleParentClick(event) { // 只有直接点击 li 时才执行逻辑 if (event.target.tagName LI) { console.log(点击了列表项 event.target.innerText); } // 如果点击 li 内部的 span通常不希望触发除非使用 e.target 直接匹配 } }4.1 总结与最佳实践在开发过程中灵活运用 $event、e.target 和 e.currentTarget 可以解决很多复杂交互问题。4.1.1 选择 e.currentTarget 的时机当你的监听器绑定在父元素上而你想要执行与父元素相关的逻辑或者需要在事件冒泡过程中统一处理所有子元素行为时应优先使用e.currentTarget。4.1.2 选择 e.target 的时机当你需要对被点击的具体元素进行差异化处理或者实现事件委托机制时必须使用e.target。4.1.3 注意事项在使用 Vue 指令如v-on时$event是一个保留字不要在方法参数中重命名它否则 Vue 无法正确注入事件对象。

相关新闻

主流 Agent 开发框架对比

主流 Agent 开发框架对比

AI Agent 开发框架哪家强?本文从 LangChain、AutoGen、CrewAI 到 Dify,全面拆解四大主流框架的核心概念、适用场景与选型策略,帮你选对轮子,少走弯路。 7.1 框架总览对比 2024~2026 年是 AI Agent 框架的爆发期。从早…

2026/7/30 8:03:21 阅读更多 →
HT32单片机核心外设实战:GPIO、定时器、串口与ADC开发指南

HT32单片机核心外设实战:GPIO、定时器、串口与ADC开发指南

1. 项目概述:从零上手HT32基础外设 最近在整理一个老项目的硬件方案,手头正好有几块Holtek的HT32系列开发板。说实话,刚开始接触时,感觉它有点像STM32的“远房亲戚”,但深入用下来,发现它在成本敏感型应用里…

2026/7/30 8:03:21 阅读更多 →
FPGA异步时钟无毛刺切换:Verilog实现与工程实践

FPGA异步时钟无毛刺切换:Verilog实现与工程实践

1. 从一次系统重启说起:为什么时钟切换不是简单的“二选一” 那天下午,我正在调试一块FPGA板卡上的多速率数据处理模块。系统需要根据外部传感器的数据速率,动态地在100MHz和25MHz两个工作时钟之间切换。我的第一版代码简单粗暴:用…

2026/7/30 8:03:21 阅读更多 →

最新新闻

基于Multisim的加减运算电路仿真实践与原理分析

基于Multisim的加减运算电路仿真实践与原理分析

1. 项目概述:从理论到仿真的加减运算电路实践在电子电路的学习和设计中,加减运算电路是一个绕不开的基础模块。无论是模拟信号处理、传感器数据调理,还是音频混合,都离不开对多个电压信号进行代数相加或相减的操作。过去&#xff…

2026/7/30 8:22:28 阅读更多 →
Android USB接口读写速度测试:从协议到实践的全方位性能诊断指南

Android USB接口读写速度测试:从协议到实践的全方位性能诊断指南

1. 项目概述:为什么我们需要关注Android USB接口的读写速度?如果你是一名Android开发者,或者经常需要在手机和电脑之间传输大文件,那你肯定遇到过这样的场景:拷贝一部几个G的电影到手机里,进度条慢得像蜗牛…

2026/7/30 8:22:27 阅读更多 →
AVOA与AO算法融合优化BP神经网络的MATLAB实现

AVOA与AO算法融合优化BP神经网络的MATLAB实现

1. 项目背景与核心思路在智能优化算法领域,非洲秃鹫优化算法(AVOA)和天鹰优化算法(AO)是近年来提出的两种新型仿生优化方法。这个项目将四种算法进行融合创新:非洲秃鹫优化(AVOA)、改进版非洲秃鹫优化(AVOABP)、天鹰优化(AO)和改进版天鹰优化(AOBP)&…

2026/7/30 8:22:27 阅读更多 →
福州看诊多动症干预效果

福州看诊多动症干预效果

前阵子小区妈妈群里炸锅,二年级的浩浩因为上课揪前面女生辫子、45分钟课能下8次位置,被老师连着一周找家长,浩浩妈一开始以为是娃调皮打了好几次,结果反而娃越来越叛逆,后来去做评估才知道是多动症,前后跑了…

2026/7/30 8:22:27 阅读更多 →
273重型圆管弯管机如何选择品牌?

273重型圆管弯管机如何选择品牌?

选择273重型圆管弯管机,核心看三点:设备的核心液压与电控系统稳定性、对大管径加工的适配能力、以及厂家的全周期服务保障能力。市面上品牌众多,但真正能稳定加工273mm大管径、同时保证成品合格率和使用寿命的厂家并不多。焦作昂旭机械设备有…

2026/7/30 8:22:27 阅读更多 →
Kimi K3开源大模型本地部署指南:从硬件配置到生产环境实践

Kimi K3开源大模型本地部署指南:从硬件配置到生产环境实践

在实际 AI 应用开发中,选择并部署一个性能强劲的开源大语言模型(LLM)是项目成功的关键一步。近期,由 Moonshot AI 推出的 Kimi K3(Max)模型在权威评测平台 Agent Arena 中表现突出,位列开源模型…

2026/7/30 8:21:27 阅读更多 →

日新闻

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:13 阅读更多 →
如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 你是否曾经在浏览…

2026/7/30 0:00:13 阅读更多 →
“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

更多请点击: https://intelliparadigm.com 第一章:AI 教师备课辅助 AI 教师备课辅助系统正逐步成为教育数字化转型的核心支撑工具,它并非替代教师,而是通过语义理解、知识图谱与多模态生成能力,将教师从重复性劳动中解…

2026/7/30 0:00:13 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/29 22:18:20 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/29 15:00:03 阅读更多 →

月新闻