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 相关文章推荐
ECMAScript 基础知识
Jun 29 Javascript
jQuery 源码分析笔记(6) jQuery.data
Jun 08 Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
Sep 10 Javascript
js显示文本框提示文字的方法
May 07 Javascript
简介JavaScript中的unshift()方法的使用
Jun 09 Javascript
jquery实现顶部向右伸缩的导航区域代码
Sep 02 Javascript
微信小程序 高德地图SDK详解及简单实例(源码下载)
Jan 11 Javascript
JavaScript之json_动力节点Java学院整理
Jun 29 Javascript
webpack学习笔记之代码分割和按需加载的实例详解
Jul 20 Javascript
es6+angular1.X+webpack 实现按路由功能打包项目的示例
Aug 16 Javascript
vue组件横向树实现代码
Aug 02 Javascript
vue后台管理之动态加载路由的方法
Aug 13 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
用PHP和ACCESS写聊天室(五)
2006/10/09 PHP
php mysql数据库操作类
2008/06/04 PHP
PHP 文件缓存的性能测试
2010/04/25 PHP
Laravel多域名下字段验证的方法
2019/04/04 PHP
PHP+redis实现的限制抢购防止商品超发功能详解
2019/09/19 PHP
LazyForm jQuery plugin 定制您的CheckBox Radio和Select
2009/10/24 Javascript
如何判断鼠标是否在DIV的区域内
2013/11/13 Javascript
javascript定义变量时有var和没有var的区别探讨
2014/07/21 Javascript
Extjs grid panel自带滚动条失效的解决方法
2014/09/11 Javascript
编写高性能Javascript代码的N条建议
2015/10/12 Javascript
如何实现json数据可视化详解
2016/11/24 Javascript
ionic grid(栅格)九宫格制作详解
2018/06/30 Javascript
javascript显示动态时间的方法汇总
2018/07/06 Javascript
Node.js + express基本用法教程
2019/03/14 Javascript
详解jquery和vue对比
2019/04/16 jQuery
vue 实现input表单元素的disabled示例
2019/10/28 Javascript
Openlayers显示地理位置坐标的方法
2020/09/28 Javascript
Python计算程序运行时间的方法
2014/12/13 Python
使用Python的web.py框架实现类似Django的ORM查询的教程
2015/05/02 Python
python3操作微信itchat实现发送图片
2018/02/24 Python
PyQt4实现下拉菜单可供选择并打印出来
2018/04/20 Python
Python装饰器简单用法实例小结
2018/12/03 Python
python 调用有道api接口的方法
2019/01/03 Python
基于python修改srt字幕的时间轴
2020/02/03 Python
Python 实现将numpy中的nan和inf,nan替换成对应的均值
2020/06/08 Python
Pandas对DataFrame单列/多列进行运算(map, apply, transform, agg)
2020/06/14 Python
HTML5 画布canvas使用方法
2016/03/18 HTML / CSS
西尔斯百货官网:Sears
2016/09/06 全球购物
JSF的标签库有哪些
2012/04/27 面试题
设备售后服务承诺书
2014/05/30 职场文书
学校做一个有道德的人活动方案
2014/08/23 职场文书
医疗专业毕业生求职信
2014/08/28 职场文书
大学升旗仪式主持词
2015/07/04 职场文书
办公室日常管理制度
2015/08/04 职场文书
施工安全责任协议书
2016/03/23 职场文书
用JS实现飞机大战小游戏
2021/06/09 Javascript