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实现的分页函数
Feb 07 Javascript
JavaScript面向对象知识串结(读JavaScript高级程序设计(第三版))
Jul 17 Javascript
javascript操作excel生成报表示例
May 08 Javascript
用JS实现轮播图效果(二)
Jun 26 Javascript
ie下js不执行的几种可能
Feb 28 Javascript
详解使用angular-cli发布i18n多国语言Angular应用
May 20 Javascript
AngularJS 支付倒计时功能实现思路
Jun 05 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
Apr 04 Javascript
还不懂递归?读完这篇文章保证你会懂
Jul 29 Javascript
Node.js一行代码实现静态文件服务器的方法步骤
May 07 Javascript
layer iframe 设置关闭按钮的方法
Sep 12 Javascript
koa2 数据api中间件设计模型的实现方法
Jul 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
UCenter中的一个可逆加密函数authcode函数代码
2010/07/20 PHP
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
php时区转换转换函数
2014/01/07 PHP
2个Codeigniter文件批量上传控制器写法例子
2014/07/25 PHP
Yii入门教程之Yii安装及hello world
2014/11/25 PHP
php筛选不存在的图片资源
2015/04/28 PHP
PHP实现的DES加密解密实例代码
2016/04/06 PHP
php 中self,this的区别和操作方法实例分析
2019/11/04 PHP
laravel5.6 框架邮件队列database驱动简单demo示例
2020/01/26 PHP
javascript replace方法与正则表达式
2008/02/19 Javascript
javascript对数组的常用操作代码 数组方法总汇
2011/01/27 Javascript
Jquery插件写法笔记整理
2012/09/06 Javascript
探讨js中的双感叹号判断
2013/11/11 Javascript
Jquery树插件zTree用法入门教程
2015/02/17 Javascript
浅谈JS运算符&amp;&amp;和|| 及其优先级
2016/08/10 Javascript
微信小程序如何像vue一样在动态绑定类名
2018/04/17 Javascript
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
2018/07/04 Javascript
Vue 实现列表动态添加和删除的两种方法小结
2018/09/07 Javascript
解决await在forEach中不起作用的问题
2021/02/25 Javascript
python利用urllib实现爬取京东网站商品图片的爬虫实例
2017/08/24 Python
Python设计模式之抽象工厂模式原理与用法详解
2019/01/15 Python
浅谈python函数调用返回两个或多个变量的方法
2019/01/23 Python
Python爬取破解无线网络wifi密码过程解析
2019/09/17 Python
pycharm如何实现跨目录调用文件
2020/02/28 Python
django xadmin 管理器常用显示设置方式
2020/03/11 Python
Python ckeditor富文本编辑器代码实例解析
2020/06/22 Python
Python绘图之二维图与三维图详解
2020/08/04 Python
HTML 5 input placeholder 属性如何完美兼任ie
2014/05/12 HTML / CSS
韩国休闲女装品牌网站:ANAIS
2016/08/24 全球购物
马来西亚最好的婴儿商店:Motherhood
2017/09/14 全球购物
产品设计开发计划书
2014/05/07 职场文书
写得不错的求职信范文
2014/07/11 职场文书
师德师风的心得体会
2014/09/02 职场文书
群众路线教育实践活动调研报告
2014/11/03 职场文书
毕业实习感受与体会
2015/05/26 职场文书
Android超详细讲解组件ScrollView的使用
2022/03/31 Java/Android