Генератор кодов клавиш

Работа с клавиатурными событиями — неотъемлемая часть создания интерактивных веб-приложений. Однако, запомнить или быстро узнать коды для всех клавиш бывает сложно. Создание инструмента для отображения этих данных становится тривиальной задачей, если использовать современные фреймворки, такие как Vue.js. Его реактивность и лаконичный синтаксис позволяют в несколько строк кода создать мощный и полезный компонент, который вы видите ниже.

Нажмите любую клавишу на клавиатуре, чтобы в реальном времени увидеть ее основные коды: event.key, event.keyCode и event.code.

Нажмите любую клавишу, чтобы получить ее код

event.key

{{ key }}

event.keyCode

{{ keyCode }}

event.code

{{ code }}

Внимание! Представленный код — это готовый компонент, но для его работы на странице должен быть установлен и подключен фреймворк Vue. Если вы начинающий разработчик, просто добавьте строку
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
в раздел <head> вашего HTML, и всё заработает.

Как работает генератор кодов клавиш?

Выше представлен исходный код этого интерактивного компонента. Давайте разберем его по частям, чтобы понять, как просто Vue.js управляет состоянием и логикой.

HTML (Шаблон)

В шаблоне мы используем директивы Vue для условного рендеринга и отображения данных.

  1. v-if="!key" Пока клавиша не нажата (значение key ложно), отображается приглашающая надпись.
  2. v-else Как только клавиша нажата, отрисовывается блок с тремя ячейками кодов.
  3. {{ key }}, {{ keyCode }}, {{ code }} — это интерполяции, которые автоматически обновляются в DOM при изменении соответствующих реактивных переменных.

CSS (Стили)

Стили обеспечивают чистый и адаптивный внешний вид. Используется CSS Grid для выравнивания элементов по центру и для создания сетки из трех колонок.

JavaScript (Логика на Vue 3 с Composition API)

Это сердце нашего компонента, где используется Composition API Vue.js 3.

  1. Реактивные данные: С помощью ref создаются три реактивные переменные: key, keyCode и code. Их изменение автоматически обновляет интерфейс.
  2. Хук жизненного цикла: onMounted гарантирует, что обработчик события keydown будет добавлен к окну только после монтирования компонента в DOM.
  3. Обработчик события: При нажатии клавиши функция-обработчик запускается и получает объект события e.
  4. key.value = e.key === ' ' ? 'Space' : e.key — здесь мы делаем клавишу «Пробел» более читаемой, отображая «Space» вместо пустой строки.
  5. keyCode.value = e.keyCode — сохраняем числовой код клавиши (устаревший, но все еще используемый).
  6. code.value = e.code — сохраняем физический код клавиши на клавиатуре, который не зависит от раскладки (например, KeyA для латинской ‘A’ и кириллической ‘Ф’).

Этот компонент — небольшой пример того, как быстро и эффективно можно создавать динамические интерфейсы с Vue.js. Мы не просто пишем код, мы создаем инструменты, которые улучшают пользовательский опыт и помогают в работе разработчикам.

Готовы оживить ваш сайт или веб-приложение?

Наша веб-студия специализируется на создании креативных, интерактивных и высокопроизводительных сайтов и компонентов, которые выделят ваш продукт на фоне конкурентов. От сложных анимаций до удобных пользовательских интерфейсов — мы воплотим ваши самые смелые идеи в код.

Свяжитесь с нами, и давайте создадим что-то удивительное вместе!