Vue 按键修饰符处理事件的方法


Posted in Javascript onMay 04, 2018

按键修饰符

在 PC 端开发时, 我们常常会遇到类似的需求, 比如用户按下 enter 键时提交表单, 没有用按键修饰符时, 我们可能会去监听键盘事件, 根据 keyCode 的值加以判断

Vue 新增按键修饰符和系统修饰符来处理类似事件

/** 提交表单 */
<template>
  <div class="demo">
    电话号码:
    <input type="text" placeholder="请输入电话号码" v-model="phone" @keyup.13="handleSubmit" />
  </div>
</template>

<script>
export default {
  data () {
    return {
      phone: '' // 电话号码
    }
  },
  methods: {

    // TODO 提交电话号码
    handleSubmit () { alert(this.phone) }
  }
}
</script>

要记住所有的 keyCode 值比较困难, 所以 Vue 为常用的按键提供了别名

<input type="text" placeholder="请输入电话号码" v-model="phone" @keyup.enter="handleSubmit" />

常见按钮别名

enter tab delete esc space up down left right

如果这些别名不能满足需要的话, 可以通过全局 config.keyCodes 对象自定义按键修饰符别名

Vue.config.keyCodes.x = 88

你也可以将 keyboardEvent.key 暴露的按键名转换为 kebab-case 来作为修饰符, 以下两种修饰符都能触发 handleSubmit 事件

<input type="text" placeholder="请输入电话号码" v-model="phone" @keyup.right="handleSubmit" />
<input type="text" placeholder="请输入电话号码" v-model="phone" @keyup.arrow-right="handleSubmit" />

系统修饰键

有时候我们需要配合系统修饰键共同触发事件, 这里要注意的是, 单独按下系统修饰键是不会触发相应事件的

系统修饰键包含 ctrl alt shift meta 键, 对于不同的键盘, 这四个系统修饰键对应各有不同, 对于 mac 系统键盘, meta 键对应 command 键, 在 windows 系统键盘中对应 ⊞ 键

在下面的例子中, 当 control 和 v 键共同作用时, 才会触发 handleSubmit 事件

<input type="text" placeholder="请输入电话号码" v-model="phone" @keyup.ctrl.v="handleSubmit"/>

有时候我们需要精确匹配到按键组合时才触发相应事件, 在下面的例子中, 当且仅当 control 和 v 键共同作用时, 才会触发 handleSubmit 事件

<input type="text" placeholder="请输入电话号码" v-model="phone" @keyup.ctrl.v.exact="handleSubmit"/>

总结

以上所述是小编给大家介绍的Vue 按键修饰符处理事件的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js 替换功能函数,用正则表达式解决,js的全部替换
Dec 08 Javascript
精通Javascript系列之Javascript基础篇
Jun 07 Javascript
js作用域及作用域链概念理解及使用
Apr 15 Javascript
详解js树形控件—zTree使用总结
Dec 28 Javascript
canvas 实现中国象棋
Feb 17 Javascript
微信小程序 判断手机号的实现代码
Apr 19 Javascript
React进阶学习之组件的解耦之道
Aug 07 Javascript
input 标签实现输入框带提示文字效果(两种方法)
Oct 09 Javascript
Vue-Router实现组件间跳转的三种方法
Nov 07 Javascript
javascript函数的节流[throttle]与防抖[debounce]
Nov 15 Javascript
vue实现购物车抛物线小球动画效果的方法详解
Feb 13 Javascript
基于vue的video播放器的实现示例
Feb 19 Vue.js
vue mint-ui tabbar变组件使用
May 04 #Javascript
Vue结合Video.js播放m3u8视频流的方法示例
May 04 #Javascript
原生javascript AJAX 三级联动的实现代码
May 04 #Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
May 04 #Javascript
vue裁切预览组件功能的实现步骤
May 04 #Javascript
详解vue组件基础
May 04 #Javascript
在 Vue 项目中引入 tinymce 富文本编辑器的完整代码
May 04 #Javascript
You might like
Terran兵种介绍
2020/03/14 星际争霸
配置支持SSI
2006/11/25 PHP
php_xmlhttp 乱码问题解决方法
2009/08/07 PHP
php生成zip压缩文件的方法详解
2013/06/09 PHP
php缩小png图片不损失透明色的解决方法
2013/12/25 PHP
php代码架构的八点注意事项
2016/01/25 PHP
javascript jQuery插件练习
2008/12/24 Javascript
使用js检测浏览器的实现代码
2013/05/14 Javascript
jquery控制display属性为none或block
2014/03/31 Javascript
理解 Node.js 事件驱动机制的原理
2017/08/16 Javascript
JS中的JSON对象的定义和取值实现代码
2018/05/09 Javascript
vue采用EventBus实现跨组件通信及注意事项小结
2018/06/14 Javascript
Vue2.5学习笔记之如何在项目中使用和配置Vue
2018/09/26 Javascript
小程序实现左滑删除的效果的实例代码
2020/10/19 Javascript
[02:36]DOTA2英雄基础教程 斯拉克
2013/11/29 DOTA
在Python中使用zlib模块进行数据压缩的教程
2015/06/26 Python
Python画图学习入门教程
2016/07/01 Python
matplotlib绘图实例演示标记路径
2018/01/23 Python
python3中zip()函数使用详解
2018/06/29 Python
解决Python3.5+OpenCV3.2读取图像的问题
2018/12/05 Python
Python3.5实现的罗马数字转换成整数功能示例
2019/02/25 Python
python multiprocessing模块用法及原理介绍
2019/08/20 Python
pytorch读取图像数据转成opencv格式实例
2020/06/02 Python
python用Tkinter做自己的中文代码编辑器
2020/09/07 Python
python 实用工具状态机transitions
2020/11/21 Python
记一次python 爬虫爬取深圳租房信息的过程及遇到的问题
2020/11/24 Python
神话般的珠宝:Ross-Simons
2020/07/13 全球购物
英国Iceland杂货店:网上食品购物
2020/12/16 全球购物
应届生会计电算化求职信
2013/10/03 职场文书
个人简历的自荐信
2013/10/23 职场文书
电气工程和自动化自荐信范文
2013/12/25 职场文书
经典洗发水广告词
2014/03/13 职场文书
经典禁毒标语
2014/06/16 职场文书
刑事撤诉申请书
2015/05/18 职场文书
人民币使用说明书
2019/04/17 职场文书
PostgreSQL13基于流复制搭建后备服务器的方法
2022/01/18 PostgreSQL