vue实现键盘操作
Vue 实现键盘操作的方法
监听全局键盘事件
在 Vue 中可以通过 @keydown 或 @keyup 监听键盘事件。通常在模板中绑定事件:
<template>
<div @keydown="handleKeyDown">
<!-- 内容区域 -->
</div>
</template>
<script>
export default {
methods: {
handleKeyDown(event) {
if (event.key === 'Enter') {
// 处理回车键逻辑
}
}
}
}
</script>
监听特定按键
可以通过 event.key 或 event.keyCode 判断具体按键:

methods: {
handleKeyDown(event) {
switch(event.key) {
case 'ArrowUp':
// 上箭头
break;
case 'ArrowDown':
// 下箭头
break;
case 'Escape':
// ESC键
break;
}
}
}
添加全局键盘监听
对于需要在组件外监听的场景,可以在 mounted 生命周期添加事件:
mounted() {
window.addEventListener('keydown', this.handleGlobalKeyDown);
},
beforeDestroy() {
window.removeEventListener('keydown', this.handleGlobalKeyDown);
}
使用修饰符
Vue 提供了按键修饰符简化常见按键的判断:

<input @keyup.enter="submit" @keyup.esc="clear">
第三方库
对于复杂键盘操作,可以使用 vue-hotkey 等第三方库:
import VueHotkey from 'vue-hotkey';
Vue.use(VueHotkey);
// 使用指令
<button v-hotkey="'ctrl+s'" @click="save">Save</button>
组合键处理
通过判断 event.ctrlKey、event.shiftKey 等属性实现组合键:
handleKeyDown(event) {
if (event.ctrlKey && event.key === 's') {
event.preventDefault();
this.save();
}
}
注意事项
- 确保在组件销毁时移除全局事件监听
- 表单元素可能拦截键盘事件,需要额外处理
- 移动端键盘事件可能表现不同,需针对性测试






