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 TextArea动态显示剩余字符
Oct 22 Javascript
javascript suggest效果 自动完成实现代码分享
Feb 17 Javascript
javascript学习(二)javascript常见问题总结
Jan 02 Javascript
Jquery 的outerHeight方法使用介绍
Sep 11 Javascript
基于jQuery实现文本框缩放以及上下移动功能
Nov 24 Javascript
jQuery获取单击节点对象的方法
Jun 02 Javascript
JavaScript获取当前时间向前推三个月的方法示例
Feb 04 Javascript
Bootstrap-table自定义可编辑每页显示记录数
Sep 07 Javascript
JavaScript实现数字前补“0”的五种方法示例
Jan 03 Javascript
微信小程序整合使用富文本编辑器的方法详解
Apr 25 Javascript
基于vue实现圆形菜单栏组件
Jul 05 Javascript
JavaScript 如何在浏览器中使用摄像头
Dec 02 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
php5 and xml示例
2006/11/22 PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
2014/11/25 PHP
php获取客户端电脑屏幕参数的方法
2015/01/09 PHP
php源码之将图片转化为data/base64数据流实例详解
2016/11/27 PHP
PHP利用Socket获取网站的SSL证书与公钥
2017/06/18 PHP
JavaScript中的集合及效率
2010/01/08 Javascript
基于jQuery的让非HTML5浏览器支持placeholder属性的代码
2011/05/24 Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
2012/08/14 Javascript
wap浏览自动跳转到wap页面的js代码
2014/05/17 Javascript
用js闭包的方法实现多点标注冒泡示例
2014/05/29 Javascript
JavaScript中var关键字的使用详解
2015/08/14 Javascript
简单实现限制uploadify上传个数
2015/11/16 Javascript
Vue.js路由vue-router使用方法详解
2017/03/20 Javascript
js 原生判断内容区域是否滚动到底部的实例代码
2017/11/15 Javascript
jQuery+PHP实现上传裁剪图片
2020/06/29 jQuery
详解从NodeJS搭建中间层再谈前后端分离
2018/11/13 NodeJs
VuePress 静态网站生成方法步骤
2019/02/14 Javascript
JS数组方法join()用法实例分析
2020/01/18 Javascript
[06:53]DOTA2每周TOP10 精彩击杀集锦vol.3
2014/06/25 DOTA
[42:00]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第一场 12.13
2020/12/17 DOTA
使用C语言扩展Python程序的简单入门指引
2015/04/14 Python
Python实现运行其他程序的四种方式实例分析
2017/08/17 Python
Python升级导致yum、pip报错的解决方法
2017/09/06 Python
python中树与树的表示知识点总结
2019/09/14 Python
python实现淘宝购物系统
2019/10/25 Python
Python for循环通过序列索引迭代过程解析
2020/02/07 Python
Tensorflow中批量读取数据的案列分析及TFRecord文件的打包与读取
2020/06/30 Python
python3实现将json对象存入Redis以及数据的导入导出
2020/07/16 Python
车间工艺员岗位职责
2013/12/09 职场文书
个人能力自我鉴赏
2014/01/25 职场文书
青奥会口号
2014/06/12 职场文书
信仰纪录片观后感
2015/06/08 职场文书
高三教师工作总结2015
2015/07/21 职场文书
2016党员发展对象培训心得体会
2016/01/08 职场文书
JavaScript实现班级抽签小程序
2021/05/19 Javascript
pytorch 实现多个Dataloader同时训练
2021/05/29 Python