Vue.js 中的按键修饰符使得键盘事件处理变得十分简单,它们通常与 v-on
指令(或简写为 @
)一起用来监听键盘事件。
Vue允许为v-on在监听键盘事件时添加按键修饰符。
示例:
<!-- 只有在 keyCode 是 13 时调用 vm.submit() -->
<input v-on:keyup.13="submit">
<!-- 利用下面的写法有同样的效果 -->
<input v-on:keyup.enter="submit">
示例:响应enter键事件
<input type="text" @keyup.13="doSubmit" v-model="name">
var vm = new Vue({
el: "#app",
data: function() {
return {
name: 'hello vue'
}
},
methods: {
doSubmit: function() {
alert("响应enter," + this.name);
}
}
});
下面是一些Vue.js中的按键修饰符及其使用方法的详尽介绍:
按键修饰符背后的思想非常简单:在监听键盘事件时,你可能只对某些特定的按键感兴趣,Vue.js 提供的按键修饰符可以让你直接在模板中指定这些特定的按键,从而无需在方法里编写任何额外的逻辑来检查按键代码。
按键修饰符直接跟在事件名称后面,由点 (.) 分隔。例如,如果你想要在用户按下 Enter 键时调用一个方法,你可以这样写:
<input v-on:keyup.enter="yourMethod">
或者使用简写形式:
<input @keyup.enter="yourMethod">
按键别名 | 含义 |
---|---|
.enter |
回车确认键 |
.tab |
TAB键 |
.delete |
捕获 “删除” 和 “退格” 键 |
.esc |
键盘左上角的Esc键,取消键 |
.space |
空格键 |
.up |
上 |
.down |
下 |
.left |
左 |
.right |
右 |
除了这些常用按键之外,你还可以使用任何有效的按键名称,来作为按键修饰符。
Vue 允许你向 config.keyCodes
对象添加自定义按键修饰符别名:
// 允许 v-on:keyup.f1
Vue.config.keyCodes.f1 = 112;
这样你就可以使用自定义的按键修饰符别名在模板中绑定事件了。
Vue.js 还允许使用以下几个用于检测常用系统按键的修饰符:
按键别名 | 含义 |
---|---|
.ctrl |
ctrl键 |
.alt |
alt键 |
.shift |
shift键 |
.meta |
在 Mac 键盘上是 Command 键,在 Windows 键盘上是 Windows 键 |
这些事件修饰符还可以与普通的按键修饰符结合使用。例如:
<input @keyup.alt.67="clear">
<button @click.ctrl="doSomething">Do somethingbutton>
你可以链式地使用多个事件修饰符:
<input @keyup.ctrl.shift.enter="onEnter">
.exact
修饰符允许你控制其他系统修饰键确切的组合。它可以确保只有当全部正确的修饰键被按下时,才会触发事件处理函数:
<button @click.ctrl.exact="onControlClick">Abutton>
<button @click.exact="onClick">Bbutton>
通过使用Vue的按键修饰符,你可以极大地减少处理键盘事件时的 js 代码量,并使你的方法更加专注于它们实际上需要做的事情,而不是处理不相关的按键。