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 相关文章推荐
JavaScript 仿关机效果的图片层
Dec 26 Javascript
ExtJS TabPanel beforeremove beforeclose使用说明
Mar 31 Javascript
jQuery中多个元素的Hover事件解决方案
Jun 12 Javascript
详解webpack+gulp实现自动构建部署
Jun 29 Javascript
jQuery实现火车票买票城市选择切换功能
Sep 15 jQuery
JavaScript实现JSON合并操作示例【递归深度合并】
Sep 07 Javascript
vue响应式系统之observe、watcher、dep的源码解析
Apr 09 Javascript
简谈创建React Component的几种方式
Jun 15 Javascript
javascript中call,apply,callee,caller用法实例分析
Jul 24 Javascript
layui实现图片虚拟路径上传,预览和删除的例子
Sep 25 Javascript
编写v-for循环的技巧汇总
Dec 01 Javascript
vue 实现click同时传入事件对象和自定义参数
Jan 29 Vue.js
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
提升PHP执行速度全攻略(下)
2006/10/09 PHP
在php中取得image按钮传递的name值
2006/10/09 PHP
php的字符串用法小结
2010/06/08 PHP
PHP自定义大小验证码的方法详解
2013/06/07 PHP
php类常量的使用详解
2013/06/08 PHP
PHP数据库链接类(PDO+Access)实例分享
2013/12/05 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
基于jquery的鼠标拖动效果代码
2012/05/30 Javascript
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
node.js中的fs.linkSync方法使用说明
2014/12/15 Javascript
在Google 地图上实现做的标记相连接
2015/01/05 Javascript
jQuery判断一个元素是否可见的方法
2015/06/05 Javascript
C#中使用迭代器处理等待任务
2015/07/13 Javascript
javascript基础语法学习笔记
2016/01/04 Javascript
原生JavaScript实现Ajax的方法
2016/04/07 Javascript
jQuery内容折叠效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
JavaScript SHA-256加密算法详细代码
2016/10/06 Javascript
ReactNative中使用Redux架构总结
2017/12/15 Javascript
JsChart组件使用详解
2018/03/04 Javascript
js实现下拉框二级联动
2018/12/04 Javascript
微信小程序加载机制及运行机制图解
2019/11/27 Javascript
Python 将pdf转成图片的方法
2018/04/23 Python
django xadmin中form_layout添加字段显示方式
2020/03/30 Python
Python能做什么
2020/06/02 Python
Ubuntu16安装Python3.9的实现步骤
2020/12/15 Python
使用gunicorn部署django项目的问题
2020/12/30 Python
利用python实现汉诺塔游戏
2021/03/01 Python
多媒体专业自我鉴定
2014/02/28 职场文书
马智宇婚礼主持词
2014/03/22 职场文书
战友聚会主持词
2014/04/02 职场文书
《大作家的小老师》教学反思
2014/04/16 职场文书
项目负责人任命书
2014/06/04 职场文书
教师个人查摆剖析材料
2014/10/14 职场文书
社区母亲节活动总结
2015/02/10 职场文书
幼儿园辞职信
2015/05/13 职场文书
《中彩那天》教学反思
2016/02/24 职场文书