跳至内容

KeyCode 修饰符
重大变更

概述

以下是变更的简要概述

  • 重大变更: 使用数字(即 keyCodes)作为 v-on 修饰符不再受支持
  • 重大变更: config.keyCodes 不再受支持

2.x 语法

在 Vue 2 中,keyCodes 作为修改 v-on 方法的一种方式得到支持。

html
<!-- keyCode version -->
<input v-on:keyup.13="submit" />

<!-- alias version -->
<input v-on:keyup.enter="submit" />

此外,您可以通过全局 config.keyCodes 选项定义自己的别名。

js
Vue.config.keyCodes = {
  f1: 112
}
html
<!-- keyCode version -->
<input v-on:keyup.112="showHelpText" />

<!-- custom alias version -->
<input v-on:keyup.f1="showHelpText" />

3.x 语法

由于 KeyboardEvent.keyCode 已被弃用,因此 Vue 3 继续支持它不再有意义。因此,现在建议对您要作为修饰符使用的任何键使用 kebab-case 名称。

html
<!-- Vue 3 Key Modifier on v-on -->
<input v-on:keyup.page-down="nextPage">

<!-- Matches both q and Q -->
<input v-on:keydown.q="quit">

因此,这意味着 config.keyCodes 现在也已弃用,并且不再受支持。

迁移策略

对于在代码库中使用 keyCode 的用户,我们建议将其转换为其 kebab-cased 命名的等效项。

某些标点符号的键可以直接包含在内。例如,对于 ,

html
<input v-on:keydown.,="commaPress">

语法的限制阻止了某些字符的匹配,例如 "'/=>.。对于这些字符,您应该在监听器中检查 event.key

迁移构建标志

  • CONFIG_KEY_CODES
  • V_ON_KEYCODE_MODIFIER