Petite-Vue предоставляет компактный и удобный синтаксис для привязки событий к элементам DOM, сохраняя при этом реактивность и гибкость подхода, знакомого по Vue.js, но с минимальной нагрузкой на код. Одним из ключевых инструментов является сокращенная запись событий, которая позволяет создавать обработчики без громоздкой разметки.
Для привязки события используется директива @ или
v-on:. Сокращенная запись выглядит как:
<button @click="increment">Нажать</button>
Здесь:
@click — сокращение от v-on:click."increment" — метод, вызываемый при событии, который
должен быть определен в объекте data.Аналогичная запись в полном виде:
<button v-on:click="increment">Нажать</button>
Сокращение @ существенно упрощает код, особенно при
большом количестве интерактивных элементов.
События могут передавать аргументы в методы. Сокращенная запись поддерживает передачу значений напрямую:
<button @click="addItem('apple')">Добавить яблоко</button>
В объекте data или methods:
const App = {
data() {
return {
items: []
}
},
methods: {
addItem(name) {
this.items.push(name)
}
}
}
Также можно использовать объект события
event, передавая его в метод:
<input @input="updateValue($event)">
methods: {
updateValue(event) {
this.value = event.target.value
}
}
$event — специальная переменная, автоматически
подставляемая Petite-Vue, которая содержит объект события.
Petite-Vue поддерживает ряд модификаторов для событий, которые позволяют изменить поведение без написания дополнительных функций. Среди них:
.prevent — предотвращает стандартное поведение
браузера..stop — останавливает всплытие события..once — событие срабатывает только один раз..self — обработчик вызывается только если событие
произошло на самом элементе, а не на потомках.Примеры:
<form @submit.prevent="submitForm">
<button type="submit">Отправить</button>
</form>
<div @click.stop="handleClick">
Контейнер
</div>
<button @click.once="alertMessage">Один раз</button>
Комбинирование модификаторов:
<button @click.stop.prevent="customAction">Комбинированное</button>
Сокращенная запись позволяет напрямую использовать стрелочные функции для простых действий, без создания методов в объекте:
<button @click="() => count++">Увеличить</button>
Этот подход удобен для локальных изменений состояния и уменьшает
количество методов в объекте data.
Для одного элемента можно назначить несколько событий, используя
несколько @:
<input
@focus="onFocus"
@blur="onBlur"
@keydown.enter="submitForm"
>
Особенность Petite-Vue: поддержка событий с указанием конкретной
клавиши или комбинации (enter, esc,
tab и др.) через точку после события:
<input @keydown.enter="submitForm">
Это позволяет избежать проверки клавиш внутри метода и делает код компактным и читаемым.
Событие можно привязать динамически, используя квадратные скобки и реактивное выражение:
<button :@click="currentAction">Действие</button>
Где currentAction — имя метода, которое может меняться в
зависимости от состояния:
data() {
return {
currentAction: 'saveData'
}
},
methods: {
saveData() { console.log('Сохранено') },
deleteData() { console.log('Удалено') }
}
При изменении currentAction метод привязки автоматически
меняется.
@ вместо полного v-on: для
краткости.$event для объектов событий..prevent, .stop,
.once и .self повышают контроль над поведением
событий.Эффективное применение сокращенной записи событий делает разработку с Petite-Vue максимально компактной и при этом сохраняет всю реактивную мощь библиотеки.