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 实现的自定义对话框
Mar 24 Javascript
js自定义事件代码说明
Jan 31 Javascript
解析John Resig Simple JavaScript Inheritance代码
Dec 03 Javascript
js鼠标滑轮滚动事件绑定的简单实例(兼容主流浏览器)
Jan 14 Javascript
JavaScript function 的 length 属性使用介绍
Sep 15 Javascript
dul无法加载bootstrap实现unload table/user恢复
Sep 29 Javascript
给easyui的datebox控件添加清空按钮的实现方法
Nov 09 Javascript
JavaScript基于Dom操作实现查找、修改HTML元素的内容及属性的方法
Jan 20 Javascript
Vue中父组件向子组件通信的方法
Jul 11 Javascript
vue.js中实现登录控制的方法示例
Apr 23 Javascript
彻底弄懂 JavaScript 执行机制
Oct 23 Javascript
js实现蒙版效果
Jan 11 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笔记之:php函数range() round()和list()的使用说明
2013/04/26 PHP
php之curl实现http与https请求的方法
2014/10/21 PHP
PHP错误处理函数
2016/04/03 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
2016/05/12 PHP
php结合mysql与mysqli扩展处理事务的方法
2016/06/29 PHP
lnmp安装多版本PHP共存的方法详解
2018/08/02 PHP
php源码的使用方法讲解
2019/09/26 PHP
js调试工具 Javascript Debug Toolkit 2.0.0版本发布
2008/12/02 Javascript
JQuery Tips(4) 一些关于提高JQuery性能的Tips
2009/12/19 Javascript
Javascript算符的优先级介绍
2013/03/20 Javascript
JS实现动态移动层及拖动浮层关闭的方法
2015/04/30 Javascript
jquery表单对象属性过滤选择器实例分析
2015/05/18 Javascript
Angular.JS学习之依赖注入$injector详析
2016/10/20 Javascript
简单谈谈ES6的六个小特性
2016/11/18 Javascript
Bootstrap基本样式学习笔记之按钮(4)
2016/12/07 Javascript
详解React-Native解决键盘遮挡问题(Keyboard遮挡问题)
2017/07/13 Javascript
Node.js Buffer模块功能及常用方法实例分析
2019/01/05 Javascript
vue缓存的keepalive页面刷新数据的方法
2019/04/23 Javascript
vue操作dom元素的3种方法示例
2020/09/20 Javascript
Django框架中方法的访问和查找
2015/07/15 Python
python利用urllib实现爬取京东网站商品图片的爬虫实例
2017/08/24 Python
Django框架创建mysql连接与使用示例
2019/07/29 Python
sublime3之内网安装python插件Anaconda的流程
2020/11/10 Python
Python爬虫入门教程02之笔趣阁小说爬取
2021/01/24 Python
H5 canvas中width、height和style的宽高区别详解
2018/11/02 HTML / CSS
lululemon美国官网:瑜伽服+跑步装备
2018/11/16 全球购物
一个SQL面试题
2014/08/21 面试题
C#怎么让一个窗口居中显示?
2015/10/20 面试题
初中美术教学反思
2014/01/29 职场文书
视光学专业自荐信
2014/06/24 职场文书
详解MySQL数据库千万级数据查询和存储
2021/05/18 MySQL
python实现语音常用度量方法的代码详解
2021/05/25 Python
Windows中Redis安装配置流程并实现远程访问功能
2021/06/07 Redis
使用CSS实现一个搜索引擎的原理解析
2021/09/25 HTML / CSS
CSS3实现指纹特效代码
2022/03/17 HTML / CSS
python运行脚本文件的三种方法实例
2022/06/25 Python