Vue基础教程(73)事件修饰符之capture:Vue事件修饰符.capture:我不是霸道,我只是个“插队”的时光机!

嘿,Vue玩家们!今天咱们不聊v-model,不撕v-ifv-show,来扒一扒Vue事件系统里一个看似低调、实则“霸道总裁”般的存在——.capture事件修饰符

你是不是经常这样写代码?

<button @click="handleClick">点我呀!</button>

然后handleClick方法屁颠屁颠就跑起来了。这没问题,是Vue世界的标准操作。但如果你以为事件的世界就这么简单,那你就图样图森破了(太年轻太简单)!

真实世界的事件,可不是这么“老实巴交”的。它们像一场在DOM家族树里进行的“传话游戏”,而.capture,就是那个喜欢第一个拿到话筒的“戏精”。

第一幕:事件的“洪荒之力”——冒泡与捕获

要理解.capture,咱得先回到上古时期,啊不,是Web标准的基础知识。

想象一下这个DOM结构,一个经典的“三代同堂”:

<div class="爷爷" @click="say('爷爷')">
  <div class="爸爸" @click="say('爸爸')">
    <div class="儿子" @click="say('儿子')">
      我是按钮,点我!
    </div>
  </div>
</div>

当你点击最里面的“儿子”时,你猜猜控制台会输出什么?

如果你的直觉是只输出“儿子”,那你可就错了。浏览器的默认行为是事件冒泡!实际输出是:

儿子
爸爸
爷爷

这就叫事件冒泡: 事件从最具体的元素(孙子)开始,一层一层地向上“冒泡”到最不具体的根元素(祖宗)。就像水底的气泡,从下往上冒。

但是!但是!但是!(重要的事情说三遍)

事件传播其实有两个阶段,就像一场有严格流程的会议:

  1. 捕获阶段:window一路向下“抓捕”到目标元素。(爷爷 -> 爸爸 -> 儿子)
  2. 目标阶段: 到达实际被点击的元素。(儿子)
  3. 冒泡阶段: 再从目标元素向上“冒泡”回去。(儿子 -> 爸爸 -> 爷爷)

默认情况下,我们用@click绑定的事件监

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值