详解Vue的键盘事件

 更新时间:2022年01月07日 15:05:50   作者:QM.bear!  
这篇文章主要为大家介绍了Vue的键盘事件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

在js中我们要获取一个按键的编码通常需要通过(keydown/keyup)去绑定一个事件,再通过默认参数event中的keyCode属性去取得编码。如果我们要实现按固定的键才能触发事件时就需要在事件中进行不断的判断,这样会显的很麻烦,如

var input = document.querySelector('input')
    input.onkeyup = function (e) {
        if (e.keyCode == 13)
            console.log('我是回车键')
    }

在vue中就为我们一些常用的按键提供了别名,并且只需要我们在事件后加上相应别名即可,不需要我们手动的在事件中进行判断。

常用按键别名

Vue中为一些常用的按键绑定了别名,分别有以下几种。

  • 上箭头:up
  • 下箭头:down
  • 左箭头:left
  • 右箭头:right
  • 空格:space
  • 换行:tab
  • 退出:esc
  • 回车:enter
  • 删除/退格:delete

别名可用来限制键盘事件(keydown、keyup),只有按下键的是与别名一致时才会去执行所绑定的事件

<input v-on:keyup.enter="showtip" type="text">
只有按下回车键时才会执行showtip方法

另外,tab键只适合与keydown一起使用,在浏览器中tab本身就已经绑定了事件:切换焦点,所以在按下放开tab键后就会触动默认的事件,而忽视了keyup所绑定的事件。而使用keydown就能避过这一情况,在tab按下的那一瞬间便会执行所绑定的事件。

未提供别名的键

另外,在vue中未提供别名的按键,vue也为我们提供了一种方法去使用。vue中规定未提供别名的按键,可使用按键原始的key值去绑定,所谓key值就是由event.key获得的值。如

var input = document.querySelector('input')
    input.onkeyup = function (e) {
       console.log(e.key)
       }

以上代码在我们按下任意一键时在控制台就会输出对应的key值,分别按下大小写切换键、Q以及W键会得到以下值

我们就可以使用key值作为按键的别名,特别要注意的是如果key值是单个字母或单词直接使用key值就可以了,但是如果由多个单词组成如大小写切换键就为两个单词的结合,这个时候就要把key值进行改动,使用短横线命名法则将CapsLock-->caps-lock就可以使用了

<input v-on:keyup.Q="showtip" type="text">
//只有按下q键时才会执行showtip方法
<input v-on:keyup.caps-lock="showtips" type="text">
//只有按下capslock键时才会执行showtips方法

系统修饰键

所谓系统修饰键就是ctrl、alt、shift等。这些键的使用比较来说有点复杂,主要分为以下两种情况

1.当触发事件为keyup时,按下修饰键的同时要按下其他键,再释放其他键,事件才能被触发。

<input v-on:keyup.Alt="showtips" type="text">
//按下alt键后再按任意一键,然后再释放任意键后便会执行showtips方法
//以上的步骤太过麻烦我们可以这样写
<input v-on:keyup.Alt.y="showtips" type="text">
//当按alt y时就会触发事件而不用先按alt再按y再放y

当触发事件为keydown时,直接按下修饰键。

<input v-on:keydown.Alt="showtips" type="text">
//只有按下alt键时才会执行showtips方法

自定义按键别名

vue中为我们提供了自定义按键别名的方法,通过(Vue.config.keyCodes.自定义键名=键码)的方式去定义

<input v-on:keydown.en="showtips" type="text">
//只有按下回车键时才会执行showtips方法
Vue.config.keyCodes.en=13
//13是回车键的键码,将他的别名定义为en

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容! 

相关文章

  • Vue如何实现响应式系统

    Vue如何实现响应式系统

    这篇文章给大家整理了关于Vue如何实现响应式系统的相关知识点内容,有兴趣的朋友可以参考学习下。
    2018-07-07
  • vue非父子组件通信问题及解决方法

    vue非父子组件通信问题及解决方法

    这篇文章主要介绍了vue非父子组件通信问题及解决方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-06-06
  • Vue Transition实现类原生组件跳转过渡动画的示例

    Vue Transition实现类原生组件跳转过渡动画的示例

    本篇文章主要介绍了Vue Transition实现类原生组件跳转过渡动画的示例,具有一定的参考价值,有兴趣的可以了解一下
    2017-08-08
  • Vue2.0用户权限控制解决方案的示例

    Vue2.0用户权限控制解决方案的示例

    本篇文章主要介绍了Vue2.0用户权限控制解决方案的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Vue下路由History模式打包后页面空白的解决方法

    Vue下路由History模式打包后页面空白的解决方法

    这篇文章主要介绍了Vue下路由History模式打包后页面空白,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • vue下载excel的实现代码后台用post方法

    vue下载excel的实现代码后台用post方法

    这篇文章主要介绍了vue下载excel的实现代码,后台用post方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-05-05
  • Vue build过程取消console debugger控制台信息输出方法详解

    Vue build过程取消console debugger控制台信息输出方法详解

    这篇文章主要为大家介绍了Vue build过程取消console debugger控制台信息输出方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • 教你轻松解决Vue Dialog弹窗诟病

    教你轻松解决Vue Dialog弹窗诟病

    弹窗经常被使用在一些表单的增删改查啊,或者弹出一些提示信息等等,这篇文章主要给大家介绍了关于Vue Dialog弹窗诟病解决的相关资料,需要的朋友可以参考下
    2023-01-01
  • vue中key使用的问题示例解析

    vue中key使用的问题示例解析

    这篇文章主要为大家介绍了vue中key使用的问题示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • vue3安装配置sass的详细步骤

    vue3安装配置sass的详细步骤

    sass是css的预处理器,扩展了css语言,提供了规则、变量、混入、选择器、继承、内置函数等特性,有助于减少CSS重复的代码,节省开发时间,下面这篇文章主要给大家介绍了关于vue3安装配置sass的相关资料,需要的朋友可以参考下
    2022-12-12

最新评论