为什么在 Vue 中监听键盘事件时 keyCode 不生效了?
我之前用 keyCode 判断按键,比如回车键是 13,但最近发现不工作了,控制台还报 warning。是不是被废弃了?那现在该怎么正确判断按键?
我试过改成 key 或 code,但有时候还是拿不到预期的值,特别是在不同浏览器里表现还不一样,有点懵。
<template>
<input @keydown="handleKeydown" />
</template>
<script>
export default {
methods: {
handleKeydown(e) {
if (e.keyCode === 13) { // 这里现在不推荐用了?
console.log('按了回车')
}
}
}
}
</script>
现在统一用
e.key判断逻辑按键(比如Enter),用e.code判断物理按键(比如Enter或NumpadEnter),注意区分大小写和平台差异。改法如下:
如果要兼容数字小键盘回车,可以用
e.code === 'Enter',更稳妥。别再用
keyCode了,它连 Firefox 都开始弃用了。