按键修饰符就是在监听键盘事件时,我们经常需要检查常见的键值。Vue 允许为 v-on 在监听键盘事件时添加按键修饰符

1.如何获取键盘的键码

 @keydown="show($event)"

<template>
  <div class="hello">
     <input type="text" value="" @keydown="show($event)">
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  data () {
    return {
     items: 1
    }
  },
  methods:{
  	show(ev){
  	 alert(ev.keyCode);	
  	}
  }
}  
</script>

<style >

</style>


这样就可以获得键盘上对应的键码获取到键码之后就可以用keyup.(键码)即可调用键盘事件

 <input type="text" value="" @keydown="show($event)">
     <input type="text" value="" @keyup="show($event)">

但是由于键码太难记住vue封装了好记的键盘事件

2.vue的键盘事件

<template>
  <div class="hello">
     <input type="text" value="" @keydown.left="show($event)">
     <input type="text" value="" @keyup.right="show($event)">


     <div>{{items}}</div>
  </div>
</template>


<script>
export default {
  name: 'HelloWorld',
  data () {
    return {
     items: 1
    }
  },
  methods:{
  	show(ev){
  	 alert(ev.keyCode);	
  	}
  }
}  
</script>
<style >
</style>
  总结:

@keydown/keyup.left

@keydown/keyup.right

@keydown/keyup.up

@keydown/keyup.down

<!-- 同上 -->
<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

@keydown/ keyup.up

自动匹配按键修饰符

2.5.0 新增

你也可直接将 KeyboardEvent.key 暴露的任意有效按键名转换为 kebab-case 来作为修饰符:

<input @keyup.page-down="onPageDown">

在上面的例子中,处理函数仅在 $event.key === 'PageDown' 时被调用。

有一些按键 (.esc 以及所有的方向键) 在 IE9 中有不同的 key 值, 如果你想支持 IE9,它们的内置别名应该是首选。

系统修饰键

2.1.0 新增

可以用如下修饰符来实现仅在按下相应按键时才触发鼠标或键盘事件的监听器。

  • .ctrl
  • .alt
  • .shift
  • .meta

注意:在 Mac 系统键盘上,meta 对应 command 键 (⌘)。在 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>

请注意修饰键与常规按键不同,在和 keyup 事件一起用时,事件触发时修饰键必须处于按下状态。换句话说,只有在按住 ctrl 的情况下释放其它按键,才能触发 keyup.ctrl。而单单释放 ctrl 也不会触发事件。

.exact 修饰符

2.5.0 新增

.exact 修饰符允许你控制由精确的系统修饰符组合触发的事件。

<!-- 即使 Alt 或 Shift 被一同按下时也会触发 -->
<button @click.ctrl="onClick">A</button>

<!-- 有且只有 Ctrl 被按下的时候才触发 -->
<button @click.ctrl.exact="onCtrlClick">A</button>

<!-- 没有任何系统修饰符被按下的时候才触发 -->
<button @click.exact="onClick">A</button>

鼠标按钮修饰符

2.1.0 新增

  • .left
  • .right
  • .middle
  •  <input type="button" value=""  @click.right="show($event)">

这些修饰符会限制处理函数仅响应特定的鼠标按钮。

@keydown/ keyup.up
Logo

前往低代码交流专区

更多推荐