事件修饰符

在事件处理程序中调用 event.preventDefault() 或 event.stopPropagation() 是非常常见的需求。

.stop

阻止单击事件传播 即阻止了事件冒泡,相当于调用了event.stopPropagation方法(通俗讲就是阻止事件向上级DOM元素传递)

<div @click="show(1)"><div @click="show(2)">测试</div>
</div>

点击“测试”输出

<div @click="show(1)"><div @click.stop="show(2)">测试</div>
</div>

点击“测试”输出


.prevent

阻止了事件默认行为,相当于调用了event.preventDefault方法

默认事件指对DOM的操作会引起自动执行的动作,比如点击超链接的时候会进行页面的跳转,点击表单提交按钮时会重新加载页面等,使用".prevent"修饰符可以阻止这些事件的发生。

<!-- 提交事件不再重载页面 -->
<form v-on:submit.prevent="onSubmit"></form><!-- 修饰符可以串联 -->
<a v-on:click.stop.prevent="doThat"></a>

.capture

捕获冒泡,即有冒泡发生时,有该修饰符的dom元素会先执行,如果有多个,从外到内依次执行,然后再按自然顺序执行触发的事件。(让事件触发从包含这个元素的顶层开发往下依次触发)

<!-- 添加事件监听器时使用事件捕获模式 -->
<!-- 即内部元素触发的事件先在此处理,然后才交由内部元素进行处理 -->
<div v-on:click.capture="doThis">...</div>

.once

2.1.4新增

设置事件只能触发一次,比如按钮的点击等。

<!-- 点击事件将只会触发一次 -->
<a v-on:click.once="doThis"></a>

.self

注意:使用修饰符时,顺序很重要;相应的代码会以同样的顺序产生。因此,用 v-on:click.prevent.self 会阻止所有的点击,而 v-on:click.self.prevent 只会阻止对元素自身的点击。

<!-- 只当在 event.target 是当前元素自身时触发处理函数 -->
<!-- 即事件不是从内部元素触发的 -->
<div @click.self="doThat">...</div>

.passive

2.3.0新增

该修饰符大概意思用于对DOM的默认事件进行性能优化,根据官网的例子比如超出最大范围的滚动条滚动的。

以移动端监听元素滚动事件说明,在监听元素滚动事件的时候,会一直触发onscroll事件让页面变的越来越卡,因此在我们使用这个修饰符后,相当于给onscroll事件增加了.lazy修饰符

<!-- 滚动事件的默认行为 (即滚动行为) 将会立即触发 -->
<!-- 而不会等待 `onScroll` 完成  -->
<!-- 这其中包含 `event.preventDefault()` 的情况 -->
<div v-on:scroll.passive="onScroll">...</div>

不要把 .passive 和 .prevent 一起使用,因为 .prevent 将会被忽略,同时浏览器可能会向你展示一个警告。请记住,.passive 会告诉浏览器你想阻止事件的默认行为。


.native

在父组件中给子组件绑定一个原生的事件,就将子组件变成了普通的HTML标签,不加'. native'事件是无法触 发的。

让组件变成像html内置标签那样监听根元素的原生事件,否则组件上使用v-on只会监听自定义事件

按键修饰符

在监听键盘事件时,我们经常需要检查详细的按键。Vue 允许为 v-on 在监听键盘事件时添加按键修饰符

键盘修饰符用来修饰键盘的事件(如:onkeyup、onkeydown等),键盘的事件触发需要相对应的keyCode。然而keyCode存在很多,因此为了使用方便Vue给我们提供了别名的修饰符,分为以下两种:

普通按键(enter、delete、space、tab、esc…)

系统修饰键(ctrl、shift、alt…)

也可以直接用按键的代码来做修饰符(如:enter为13)

<!-- 只有在 `key` 是 `Enter` 时调用 `vm.submit()` -->
<!-- 键修饰符,键别名 -->
<input @keyup.enter="submit">
<!-- 键修饰符,键代码 -->
<input @keyup.13="onEnter">

为了在必要的情况下支持旧浏览器,Vue 提供了绝大多数常用的按键码的别名:

  • .enter
  • .tab
  • .delete (捕获“删除”和“退格”键)
  • .esc
  • .space
  • .up
  • .down
  • .left
  • .right

同样vue监听按键事件也可以添加其他的按键:只要加上相应的按键的名称就行了

例如:@keyup.tab="";@keyup.delet = "";

里面写按键触发执行的事件就可以了。

参考来源:Vue常用的修饰符及使用的场景_Arvin-wm的博客-CSDN博客_vue常用的修饰符及作用

vue 事件修饰符 按键修饰符相关推荐

  1. 事件——事件绑定||事件函数传参||事件修饰符||按键修饰符||自定义按键修饰符

    事件绑定 <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8& ...

  2. 五、伊森商城 前端基础-Vue v-on 事件修饰符 按键修饰符 v-for v-if 和v-show v-else和v-else-if p24

    目录 1.v-on 2.事件修饰符 3.按键修饰符 3.1.组合按钮 4.v-for 5.v-if和v-show 6.v-else 和 v-else-if 6.1.v-if结合v-for来时用 1.v ...

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

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

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

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

  5. Vue 事件绑定 事件修饰符 条件判断 循环遍历

    事件绑定 v-on:事件 简写:@事件 <div id="app"><h2>{{counter}} </h2><button v-on:c ...

  6. 22. Vue keycodes按键修饰符

    需求 在业务开发中,例如:用户登录添加用户名和密码之后,按下回车键完成登录,这个操作就需要绑定按键的keyup事件,并且还要使用按键修饰符来指定按下的键盘按钮. 下面来看看另一个需求来逐步认识一下按钮 ...

  7. 按键修饰符、系统修饰符、鼠标修饰符

    按键修饰符: 在监听键盘事件时,我们经常需要检查详细的按键.Vue 允许为 v-on 在监听键盘事件时添加按键修饰符: <!-- 只有在 `key` 是 `Enter` 时调用 `vm.subm ...

  8. Vue事件绑定(非常详细哦~)

    下面是对Vue中事件绑定的整理,希望可以帮助到有需要的小伙伴~ 事件绑定 vue如何处理事件 v-on指令用法 <input type= 'button"v-on:click=&quo ...

  9. Vue之@click、事件修饰符@click.stop与@click.prevent、按键修饰符@keyup.enter

    1.绑定监听@click: (以监听click为例,其他如keyup,用法类似)  v-on:click="fun"   @click="fun"   @cli ...

最新文章

  1. vue 富文本存储_Vue富文本编辑器
  2. vsnprintf的作用和使用
  3. JS中调用本地Winform程序并传递参数
  4. 平顶山学院java实验室_重点学科(实验室)建设规划
  5. 密码学专题 序列号文件
  6. 【vue-element-admin 】侧栏原始图标颜色一键指定
  7. Pentium Pro架构/流水线及其优化 (3) - 指令流水线/乱序执行核/高速缓存/分支预测/指令预取
  8. 途家民宿4月26日后停止20城直营业务
  9. ctreectrl 设置选中_CTreeCtrl点击获得选中项
  10. Rust 生命周期太难学、最想实现与 C++ 互操作,Rust 2020 调查报告发布!
  11. 学习戴铭博文《从 ReactiveCocoa 中能学到什么?不用此库也能学以致用》的总结...
  12. 死磕 18 个 Java 8 的日期处理,工作必用!
  13. Java为什么要有堆外内存_作为 Java 开发者,你需要了解的堆外内存知识
  14. VB 显示当前时间 24小时制
  15. 基于STM32的电磁寻迹智能车硬件部分总结
  16. 第68页的gtk+编程例子——选择菜单
  17. 2020第三届微软Project用户大会暨年终项目管理专业化与信息化论坛
  18. 计算机类专业英文缩写,计算机专业英文缩写词汇汇总
  19. Codeforces Round #717 Div.2
  20. Google Map Key申请流程

热门文章

  1. 使用IDEA连接数据库
  2. vscode中python配置(yapf与flake8)
  3. Burp Intruder使用
  4. IDEA 最新15款插件
  5. Android自定义控件——仿淘宝、网易、彩票等广告条、Banner的制作
  6. 集成学习(Ensemble)算法介绍
  7. HTB-Popcorn
  8. Element UI 分页问题 this.pageSizes.map is not a function
  9. java三元表达式的解读
  10. 计算机和英语的英语的关系,关于电脑和英语之间关系的科普贴(原创)