美文网首页
详解Vue的键盘事件

详解Vue的键盘事件

作者: 扶得一人醉如苏沐晨 | 来源:发表于2023-08-21 09:56 被阅读0次

    一、键盘事件介绍

    键盘事件是用户通过打字机输入字符的过程中触发的事件。Vue.js提供了四种键盘事件:

    • @keydown: event - 当键盘按键被按下时触发。
    • @keyup: event - 当键盘按键被松开时触发。
    • @keypress: event - 当按下字符键时触发(“重复”事件将在短时间内连续发生,直到键盘按键停止)。
    • @keydown.ctrl.alt.shift.meta: event - 当组合按键(例如Ctrl + Alt + Shift + 空格)被按下时触发。

    系统修饰键(用法特殊):ctrl、alt、shift、meta

    • 配合keyup使用:按下修饰键的同时,再按下其他键,随后释放其他键,事件才被触发。
    • 配合keydown使用:正常触发事件。

    二、Vue中的使用

    2.1、vue中常用的键盘别名

    回车 => enter
    删除 => delete (捕获“删除”和“退格”键)
    退出 => esc
    空格 => space
    换行 => tab (特殊,必须配合keydown去使用)
    上 => up
    下 => down
    左 => left
    右 => right
    

    2.2、Vue未提供别名的按键,可以使用按键原始的key值去绑定

    2.3、系统修饰键 (用法特殊) : ctr1、alt、shift、meta

    • 配合keyup使用: 按下修饰键的同时,再按下其他键,随后释放其他键,事件才被触发。
    • 配合keydown使用: 正常触发事件。
    • 也可以使用keyCode去指定具体的按键 (不推荐)
    • Vue.config.keyCodes自定义键名 = 键码,可以去定制按键别名

    三、Vue中的使用键盘别名注意事项

    3.1、html元素使用

     <div @keydown.enter="enterKeyDown"> </div>
    

    3.2、自定义组件和ElementUI上面需要加上.native修饰符

     <el-button @keydown.enter.native="enterKeyDown"> </div>
    

    四、键盘事件不触发的问题

    由于键盘事件的触发需要有焦点
    在input中绑定是没有问题的(光标在input框内)

    但是在元素或者按钮上面是没有焦点的,所以需要认为添加监听

       /* 创建keyDown事件 */
        createKeyDown() {
          document.onkeydown = (e) => {
            console.log(e);
            if (e.code === "Enter") {
              // this.handleSaveAndAddBox();
            }
          };
        },
        /* 销毁keyDown事件 */
        destroyedKeyDown() {
          document.onkeydown = (e) => {
            if (e.code === "Enter") {
            }
          };
        },
    
     created() {
        this.createKeyDown();
      },
      beforeDestroy() {
        this.destroyedKeyDown();
      },
    

    相关文章

      网友评论

          本文标题:详解Vue的键盘事件

          本文链接:https://www.haomeiwen.com/subject/meiemdtx.html