vue事件修饰符和按键修饰符用法总结


Posted in Javascript onJuly 25, 2017

之前关于vue事件修饰符和按键修饰符的一点分析,最近需要回顾,就顺便发到随笔上了

在事件处理程序中调用 event.preventDefault() 或 event.stopPropagation() 是非常常见的需求。尽管我们可以在 methods 中轻松实现这点,但更好的方式是:methods 只有纯粹的数据逻辑,而不是去处理 DOM 事件细节。

为了解决这个问题, Vue.js 为 v-on 提供了 事件修饰符。通过由点(.)表示的指令后缀来调用修饰符。

.prevent
.capture
.self
.once
<div @click='doThis' style="width:100px;height: 100px; background: red;">
  点击父元素
 <a v-on:click.stop="doThis">点击子元素
 </a>
 </div>

当点击父元素的时候,执行doThis,当点击子元素a的时候,这个点击动作不单单触发了a标签,同时也触发了div标签,这就是事件冒泡,所以假设上述例子中a标签为v-on:click='doThis',则doThis会被执行两次,父元素和子元素都执行了一次click事件,而.stop则是阻止事件冒泡,再次点击a标签,click事件只会执行一次

按键修饰符

在监听键盘事件时,我们经常需要监测常见的键值。 Vue 允许为 v-on 在监听键盘事件时添加按键修饰符:

<input v-on:keyup.13="submit">

记住所有的 keyCode 比较困难,所以 Vue 为最常用的按键提供了别名:

<input v-on:keyup.enter="submit">
<input @keyup.enter="submit">

全部的按键别名:

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

可以通过全局 config.keyCodes 对象自定义按键修饰符别名:

// 可以使用 v-on:keyup.f1 
Vue.config.keyCodes.f1 = 112

按键修饰符

2.1.0 新增

可以用如下修饰符开启鼠标或键盘事件监听,使在按键按下时发生响应。

.ctrl
.alt
.shift
.meta

注意:在Mac系统键盘上,meta对应命令键 (⌘)。在Windows系统键盘meta对应windows徽标键(⊞)。在Sun操作系统键盘上,meta对应实心宝石键 (◆)。在其他特定键盘上,尤其在MIT和Lisp键盘及其后续,比如Knight键盘,space-cadet键盘,meta被标记为“META”。在Symbolics键盘上,meta被标记为“META” 或者 “Meta”。

例如:

Alt + C

<input @keyup.alt.67="clear">

Ctrl + Click

<div @click.ctrl="doSomething">Do something</div>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
兼容IE、FireFox、Chrome等浏览器的xml处理函数js代码
Nov 30 Javascript
自己写了一个展开和收起的多更能型的js效果
Mar 05 Javascript
Underscore.js 1.3.3 中文注释翻译说明
Jun 25 Javascript
JavaScript构造函数详解
Dec 27 Javascript
jquery属性,遍历,HTML操作方法详解
Sep 17 Javascript
Vue.js路由vue-router使用方法详解
Mar 20 Javascript
详解如何使用Node.js编写命令工具——以vue-cli为例
Jun 29 Javascript
Angular2整合其他插件的方法
Jan 20 Javascript
JS实现的汉字与Unicode码相互转化功能分析
May 25 Javascript
解决vue js IOS H5focus无法自动弹出键盘的问题
Aug 30 Javascript
Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)
Oct 28 Javascript
解决vue-router 嵌套路由没反应的问题
Sep 22 Javascript
Vue.js学习笔记之修饰符详解
Jul 25 #Javascript
ES6正则表达式扩展笔记
Jul 25 #Javascript
简单实现js拖拽效果
Jul 25 #Javascript
Vue实现一个返回顶部backToTop组件
Jul 25 #Javascript
基于jquery实现多级菜单效果
Jul 25 #jQuery
关于TypeScript中import JSON的正确姿势详解
Jul 25 #Javascript
微信JSSDK调用微信扫一扫功能的方法
Jul 25 #Javascript
You might like
Uncaught exception com_exception with message Failed to create COM object
2012/01/11 PHP
PHP图形计数器程序显示网站用户浏览量
2016/07/20 PHP
PHP 搜索查询功能实现
2016/11/29 PHP
JavaScript XML实现两级级联下拉列表
2008/11/10 Javascript
JS array 数组详解
2009/03/22 Javascript
js继承的实现代码
2010/08/05 Javascript
javascript中的关于类型转换的性能优化
2010/12/14 Javascript
重写javascript中window.confirm的行为
2012/10/21 Javascript
jQuery动态设置form表单的enctype值(实现代码)
2013/07/04 Javascript
js二维数组排序的简单示例代码
2014/01/24 Javascript
深入分析javascript中console命令
2016/08/14 Javascript
jquery插件ContextMenu设置右键菜单
2017/03/13 Javascript
80%应聘者都不及格的JS面试题
2017/03/21 Javascript
关于angular js_$watch监控属性和对象详解
2017/04/24 Javascript
web前端页面生成exe可执行文件的方法
2018/02/08 Javascript
浅谈React组件之性能优化
2018/03/02 Javascript
vue登录页面cookie的使用及页面跳转代码
2019/07/10 Javascript
Vue的v-model的几种修饰符.lazy,.number和.trim的用法说明
2020/08/05 Javascript
Python中类的定义、继承及使用对象实例详解
2015/04/30 Python
Numpy之将矩阵拉成向量的实例
2019/11/30 Python
设置jupyter中DataFrame的显示限制方式
2020/04/12 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
Django --Xadmin 判断登录者身份实例
2020/07/03 Python
Python DES加密实现原理及实例解析
2020/07/17 Python
全球领先的在线cosplay服装商店:RoleCosplay
2020/01/18 全球购物
JRE、JDK、JVM之间的关系怎样
2012/05/16 面试题
介绍一下XMLHttpRequest对象
2012/02/12 面试题
测量实习生自我鉴定
2013/09/19 职场文书
联谊活动策划书
2014/01/26 职场文书
小学毕业感言500字
2014/02/28 职场文书
招聘专员岗位职责
2014/03/07 职场文书
2014党员自我评议表范文
2014/09/20 职场文书
商家认证委托书格式
2014/10/16 职场文书
小学教师年度个人总结
2015/02/05 职场文书
CSS3实现列表无限滚动/轮播效果
2021/06/23 HTML / CSS
spring cloud 配置中心native配置方式
2021/09/25 Java/Android