В Vue.js существует возможность создавать собственные псевдонимы (алиасы) для модификаторов клавиш, что особенно полезно при работе с нестандартными клавиатурами или для упрощения часто используемых комбинаций.
Псевдонимы задаются через глобальную конфигурацию Vue с использованием Vue.config.keyCodes
:
// Где-то в основном файле приложения (main.js)
Vue.config.keyCodes = {
save: 83, // Алиас 'save' для клавиши S
f1: 112, // Клавиша F1
arrowUp: 38 // Стрелка вверх
}
После определения алиасов их можно использовать в шаблонах:
<template>
<input
@keyup.save="handleSave"
@keydown.f1="showHelp"
@keyup.arrowUp="navigateUp"
/>
</template>
<script>
export default {
methods: {
handleSave() {
console.log('Custom save shortcut triggered');
},
showHelp() {
this.openHelpModal();
},
navigateUp() {
this.moveSelection(-1);
}
}
}
</script>
Комбинирование с системными модификаторами
Алиасы можно использовать вместе с Ctrl, Shift и др.:
Vue.config.keyCodes = {
save: { keyCode: 83, modifiers: ['ctrl'] }
}
Использование в шаблоне:
<input @keyup.save="saveDocument" />
Множественные псевдонимы для одной клавиши
Можно задать несколько имен для одного кода:
Vue.config.keyCodes = {
next: 39,
rightArrow: 39
}
Безопасное удаление алиасов
Чтобы удалить псевдоним, используйте:
delete Vue.config.keyCodes.save;
Организация кода
Выносите все кастомные модификаторы в отдельный конфигурационный файл:
// keycodes.config.js
export default {
save: 83,
help: 112
}
// main.js
import keyCodes from './keycodes.config';
Vue.config.keyCodes = keyCodes;
Документирование
Всегда документируйте свои кастомные модификаторы:
/**
* Key Codes Aliases:
* save - Ctrl+S (83)
* help - F1 (112)
* navigateUp - ↑ (38)
*/
Vue.config.keyCodes = { ... }
Избегание конфликтов
Проверяйте, чтобы ваши алиасы не переопределяли стандартные модификаторы Vue.
создание псевдонимов для модификаторов клавиш через Vue.config.keyCodes
позволяет сделать код более читаемым и поддерживаемым, особенно при работе с сложными комбинациями клавиш или специализированными устройствами ввода.