Що таке key modifiers?
Key modifiers (модифікатори клавіш) - це спеціальні модифікатори для директиви v-on, які дозволяють виконувати обробник лише при натисканні конкретної клавіші чи їх комбінації.
Вони використовуються з подіями keyup і keydown.
Простіше кажучи:
Key modifiers дозволяють реагувати лише на потрібні клавіші (наприклад Enter, Escape, стрілки, Tab), без ручної перевірки
event.keyу коді.
Найпростіший приклад
html
<input @keyup.enter="sendMessage">Обробник викличеться лише, якщо користувач натисне Enter.
Без модифікаторів довелося б писати:
js
onKeyPress(e) {
if (e.key === 'Enter') {
this.sendMessage()
}
}Основні key modifiers
Часто використовувані:
html
@keyup.enter
@keyup.esc
@keyup.tab
@keyup.spaceСтрілки:
html
@keyup.up
@keyup.down
@keyup.left
@keyup.rightВидалення:
html
@keyup.delete <!-- працює як Backspace і Delete -->Комбінації з модифікаторами контролів
html
@keyup.ctrl.enter="submit"
@keyup.shift.tab="backward"
@keyup.alt.s="save"Працює завдяки тому, що Vue перевіряє:
event.ctrlKeyevent.shiftKeyevent.altKeyevent.metaKey(Cmd на Mac)
Корисний кейс: відправлення форми по Enter
html
<input @keyup.enter="submitForm">Динамічний модифікатор клавіші
Можна використати обчислюване ім'я події:
html
<input v-on:[eventName]="doSomething">Але key modifiers працюють лише з прямою вказівкою клавіші, наприклад:
html
@keyup[eventName] Не можнаВажливе (Vue 2 проти Vue 3)
- У Vue 2 були
keyCodes(наприклад,keyCode: 13) - У Vue 3 їх видалено, і модифікатори працюють лише через назви клавіш (
enter,esc)
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.