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 相关文章推荐
jquery 插件 任意位置浮动固定层
Dec 25 Javascript
range 标准化之获取
Aug 28 Javascript
js中Math之random,round,ceil,floor的用法总结
Dec 26 Javascript
通过修改360抢票的刷新频率和突破8车次限制实现方法
Jan 04 Javascript
jQuery实现遍历复选框的方法示例
Mar 06 Javascript
利用Angular+Angular-Ui实现分页(代码加简单)
Mar 10 Javascript
axios的拦截请求与响应方法
Aug 11 Javascript
Vue监听事件实现计数点击依次增加的方法
Sep 26 Javascript
详解微信小程序网络请求接口封装实例
May 02 Javascript
layui form表单提交后实现自动刷新
Oct 25 Javascript
解决vue项目刷新后,导航菜单高亮显示的位置不对问题
Nov 01 Javascript
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
Feb 10 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使用google地图应用实例
2014/12/31 PHP
如何使用jQuery+PHP+MySQL来实现一个在线测试项目
2015/04/26 PHP
yii2.0使用Plupload实现带缩放功能的多图上传
2015/12/22 PHP
PHP解析url并得到url参数方法总结
2018/10/11 PHP
google地图的路线实现代码
2009/08/20 Javascript
Mootools 1.2教程 滚动条(Slider)
2009/09/15 Javascript
javascript判断用户浏览器插件安装情况的代码
2011/01/01 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
2013/11/25 Javascript
JavaScript实现模仿桌面窗口的方法
2015/07/18 Javascript
用headjs来管理和加载js 提高网站加载速度
2016/11/29 Javascript
微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
2018/10/12 Javascript
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
2019/04/24 Javascript
微信小程序获取地理位置及经纬度授权代码实例
2019/09/18 Javascript
javascript设计模式 ? 装饰模式原理与应用实例分析
2020/04/14 Javascript
vue中提示$index is not defined错误的解决方式
2020/09/02 Javascript
python改变日志(logging)存放位置的示例
2014/03/27 Python
浅析Python的Django框架中的Memcached
2015/07/23 Python
Python实现约瑟夫环问题的方法
2016/05/03 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
2019/06/26 Python
在python中,使用scatter绘制散点图的实例
2019/07/03 Python
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
python性能测量工具cProfile使用解析
2019/09/26 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
2020/04/08 Python
在终端启动Python时报错的解决方案
2020/11/20 Python
H5离线存储Manifest原理及使用
2020/04/28 HTML / CSS
JSF如何进行表格处理及取值
2012/08/06 面试题
青年教师典范事迹材料
2014/01/31 职场文书
大学生学习2014全国两会心得体会
2014/03/13 职场文书
村党支部群众路线教育实践活动对照检查材料
2014/09/26 职场文书
故意伤害人身损害赔偿协议书
2014/11/19 职场文书
物业保洁员岗位职责
2015/02/13 职场文书
安全生产会议制度
2015/08/06 职场文书
企业年会祝酒词
2015/08/11 职场文书
mysql中DCL常用的用户和权限控制
2022/03/31 MySQL
Python中time标准库的使用教程
2022/04/13 Python
教你使用RustDesk 搭建一个自己的远程桌面中继服务器
2022/08/14 Servers