本博客编辑总监博主:博客链接
编辑人本博主:博客链接


v-on事件

v-on指令用于绑定事件,例如:

v-on指令简写:v-on:click="show" 可以简写为 @click="show"
v-on:mouseover="show" 可以简写为 @mouseover="show"

v-on事件修饰符

prevent

<!-- 阻止跳转行为 -->
<div id="box"><div @click="alert1()"><a href="/#" @click.prevent="alert2()">a标签<div @click="alert3()">div标签</div></a></div>
</div>

执行效果如下:

点击 a标签 ,弹框,不跳转
点击 div标签,弹框,不跳转
也就是 在click事件绑定 prevent 修饰符阻止页面跳转。

self

<!-- 阻止事件冒泡点击行为,主观性 -->
<div id="box"><div @click="alert1()"><a href="/#" @click.self="alert2()">a标签<div @click="alert3()">div标签</div></a></div>
</div>

执行效果如下:

点击 a标签 弹框,跳转
点击 div标签,不弹框,跳转
也就是 self 修饰符 只阻止事件冒泡的事件行为,不阻止自身的事件行为,具有主观性。

native

<!-- 阻止默认事件行为 -->
<div id="box"><div @click="alert1()"><a href="/#" @click.native="alert2()">a标签<div @click="alert3()">div标签</div></a></div>
</div>


点击 a标签,不弹框,跳转
点击 div标签,不弹框,跳转
也就是native修饰符阻止默认事件(点击)行为,既阻止自己事件行为,也阻止冒泡事件行为。


v-on事件修饰符组合分析(敲黑板、画重难点)

prevent.self

<!-- 官网:阻止所有点击 -->
<div id="box"><div @click="alerttt()"><a href="/#" @click.prevent.self="alertrrrr()">a标签<div @click="alertllll()">div标签</div></a></div>
</div>


点击 a标签,弹框,不跳转
点击 div标签,不弹框,不跳转
意思是:click prevent self 结合时,自己事件行为(点击 a标签)时,会执行 click(单击) 和 prevent(阻止跳转) 行为,不触发 self(阻止事件,即弹框),也就是 self 没有起到阻止弹框的作用,于是效果是:弹框,不跳转; 而事件冒泡(点击div标签)时,会执行 click prevent 和 self 三个关键字,效果就是:不弹框,不跳转。

self.prevent

<!-- 官网:阻止元素自身的点击 -->
<div id="box"><div @click="alerttt()"><a href="/#" @click.self.prevent="alertrrrr()">a标签<div @click="alertllll()">div标签</div></a></div>
</div>


点击 a标签,弹框,不跳转
点击 div 标签,不弹框,跳转
也就是 click self prevent 三者结合时,自己事件行为(点击 a标签)时,执行 click 和 prevent 行为,而事件冒泡时,会执行 click 和 self 行为。

native.prevent / prevent.native

<!-- 阻止默认行为 -->
<!-- native和prevent组合时,native执行了,prevent就不会执行,native优先级>prevent -->
<!-- 点击自己不显示,跳转;事件冒泡不显示,跳转-->
<div id="box"><div @click="alerttt()"><a href="/#" @click.native.prevent="alertrrrr()">a标签<div @click="alertllll()">div标签</div></a></div>
</div>


点击 a标签,不弹框,跳转
点击 div标签,不弹框,跳转
当 click native prevent 三者结合时,效果与 click native 两个修饰符相同,没有执行 prevent 修饰符。


总结分析

当事件修饰符组合使用时,需要注意优先级情况:

  • prevent 在前时,修饰的是v-on 事件,不管是 自己事件行为还是冒泡事件行为,都会执行 prevent 行为,也就是阻止跳转。
  • prevent 在后时,修饰的是 v-on 被 self 修饰后的 事件,当执行 self 行为时,不执行 prevent 行为, 当不执行 self 行为时,执行 prevent 行为。
  • 只要有 self 修饰符时, 自己事件行为,就不会执行 self (阻止事件) 行为,也就是弹框,而冒泡会执行 self 行为,也就是不弹框。
  • native 与其他结合使用时,不管顺序如何,和单独的 native 行为,效果都相同,也就是 事件中只要有 native 修饰,别的修饰符有不起作用了。

本篇博客为个人理解的总结,如有错误,请指正!

vue事件修饰符prevent、self、native相关推荐

  1. vue事件修饰符有哪些

    vue 事件修饰符 1.prevent:阻止默认事件 2.stop:阻止事件冒泡 3.once:事件只触发一次 4.capture:使用事件的捕捉模式 5.self:只有event.target是当前 ...

  2. Vue 事件修饰符 详解

    本人后端程序员,由于绑页面需要使用vue,在自学的过程中不懂事件修饰符,特此请教后才理解,在这提出我的分享,忘各位大神指正. vue官网上指出: 在事件处理程序中调用 event.preventDef ...

  3. Vue事件修饰符(prevent,stop,once,capture,self)

    1.Vue的事件修饰符: 1.prevent 阻止默认事件(常用) 2.stop:阻止默认冒泡(常用) 3.once:事件只触发一次(常用) 4.capture:使用事件的捕获模式 5.self:只有 ...

  4. 【每日知识】Vue事件修饰符.native

    问题 在写代码时注意到click事件的native修饰符,如下: <el-dropdown-item divided @click.native="logout">&l ...

  5. vue事件修饰符.native

    问题 在写代码时我注意到click事件的native修饰符,如下: <el-dropdown-item divided @click.native="logout">& ...

  6. vue学习:事件传递(冒泡和捕获),事件委托,jquery中的事件委托,$event 获取元素,vue事件修饰符

    事件传递 ----冒泡和捕获 DOM事件标准定义了两种事件流,这两种事件流分别是捕获和冒泡. 和许多Web技 术一样,在它们成为标准之前,Netscape和微软各自不同地实现了它们.Netscape选 ...

  7. vue 事件修饰符 按键修饰符

    事件修饰符 在事件处理程序中调用 event.preventDefault() 或 event.stopPropagation() 是非常常见的需求. .stop 阻止单击事件传播 即阻止了事件冒泡, ...

  8. Vue事件修饰符的总结

      分为六点:           1.prevent 阻止默认行为(常用)             2.stop 阻止事件冒泡(常用)             3.once 事件值触发一次(常用) ...

  9. vue 事件修饰符与按键修饰符

    事件修饰符 在事件处理程序中调用 event.preventDefault() 或 event.stopPropagation() 是非常常见的需求.尽管我们可以在方法中轻松实现这点,但更好的方式是: ...

  10. Vue2.0学习笔记:Vue事件修饰符的使用

    事件处理 如果需要在内联语句处理器中访问原生DOM事件.可以使用特殊变量$event,把它传入到methods中的方法中. 在Vue中,事件修饰符处理了许多DOM事件的细节,让我们不再需要花大量的时间 ...

最新文章

  1. vb excel 整行删除_6个Excel表格制作技巧,熟练掌握工作效率加倍,再也不用加班...
  2. MSP430常见问题之FLASH存储类
  3. SpringBoot的构造方法中使用@AutoWird注入的类会报错null
  4. lua如何打印行号_Lua 字符串处理
  5. Android开发之将AndroidX项目改为非androidX(android.v7.support)的方法
  6. Caddi Programming Contest 2021(AtCoder Beginner Contest 193) 题解
  7. php 实现百度坐标转换,PHP实现腾讯与百度坐标转换
  8. 理解asp.net中DropDownList编辑数据源,绑定数据库数据。
  9. 设计模式(11)——组合模式
  10. 2019.6.18 区块链论文翻译
  11. android plaid,Plaid 开源库学习
  12. 74ls138和与非门设计全减器,用74LS138和门电路设计1位二进制全减器
  13. 西门子PID完整程序西门子PLC 1200和多台G120西门子变频器Modbud RTU通讯
  14. lsb隐写的基本方法matlab,GitHub - RGNil/RG_LSB: 利用python实现LSB隐写算法(我自己改进了LSB算法),并进行了性能分析(psnr、错误率、鲁棒性)...
  15. 理解Windows操作系统的KMS与MAK密钥
  16. 超级好上手的告白小程序
  17. Win10无法开机修复方法
  18. [FineReport]高级条件分组、斜线、自动查询、控件编辑属性、条件属性
  19. forward(转发)和redirect(重定向)有什么区别
  20. springboot+音乐播放小程序 毕业设计-附源码191730

热门文章

  1. flash读取程序 msp430_MSP430内部FLASH详细操作
  2. 秒搜编程好书 就用这个Python写的爬虫网站
  3. js高级程序设计note
  4. Echarts 三维地图
  5. 有 4 名同学到一家公司参加三个阶段的面试
  6. UMLChina公众号文章精选(20220821更新精选)
  7. 日历控件My97DatePicker使用--onchange不生效
  8. 网络收包LRO GRO测试总结
  9. iOS12捷径最全整理(100多个捷径),包括抖音视频下载捷径,地图导航捷径等
  10. mathtype下载之后word工具栏不出现