# Удалена поддержка модификаторов keyCode
кардинальное изменение
# Обзор
Вот краткое описание изменений:
- КАРДИНАЛЬНОЕ ИЗМЕНЕНИЕ: Использование чисел, т.е. keyCode, в качестве модификаторов
v-on
больше не поддерживается - КАРДИНАЛЬНОЕ ИЗМЕНЕНИЕ: опция
config.keyCodes
больше не поддерживается
# Синтаксис в 2.x
Во Vue 2 можно было указывать keyCode
для модификации метода v-on
.
<!-- версия с keyCode -->
<input @keyup.13="submit" />
<!-- версия с псевдонимом -->
<input @keyup.enter="submit" />
2
3
4
5
Кроме того, можно было определять собственные псевдонимы через глобальную опцию config.keyCodes
.
Vue.config.keyCodes = {
f1: 112
}
2
3
<!-- версия с keyCode -->
<input @keyup.112="showHelpText" />
<!-- версия с пользовательским псевдонимом -->
<input @keyup.f1="showHelpText" />
2
3
4
5
# Синтаксис в 3.x
Поскольку KeyboardEvent.keyCode
объявлен устаревшим (opens new window), то и Vue 3 больше нет смысла продолжать его поддержку. Теперь рекомендуется указывать имя в kebab-case для любой клавиши, которую требуется использовать в качестве модификатора.
<!-- Vue 3 и модификатор клавиши -->
<input v-on:keyup.page-down="nextPage">
<!-- Совпадает с любым регистром клавиш q/Q -->
<input v-on:keypress.q="quit">
2
3
4
5
Из этого следует, что опция config.keyCodes
теперь больше не нужна и также не будет поддерживаться.
# Стратегия миграции
При использовании keyCode
в кодовой базе, рекомендуется преобразовать такие случаи на использование именованных эквивалентов в kebab-case.
Ключи некоторых знаков препинания можно использовать буквально. Например, для обработки запятой ,
:
<input v-on:keypress.,="commaPress">
Однако, ограничения синтаксиса не позволяют использовать некоторые символы, такие как "
, '
, /
, =
, >
и .
. Поэтому для этих символов следует проверять event.key
внутри обработчика события.
CONFIG_KEY_CODES
V_ON_KEYCODE_MODIFIER