Метод $emit используется для генерации пользовательских событий из дочернего компонента. Это основной способ взаимодействия дочернего компонента с родительским в однонаправленном потоке данных Vue. Он позволяет дочернему компоненту уведомить родителя о том, что произошло какое-то событие, и, при необходимости, передать ему данные.
Принцип работы:
$emit('eventName', payload).
eventName - строка, название события, которое будет сгенерировано.payload (необязательно) - любые данные, которые нужно передать родительскому компоненту.v-on или краткой формы @.Пример:
Дочерний компонент (ChildComponent.vue):
vue
Родительский компонент (ParentComponent.vue):
vue
$emit позволяет сохранять принцип однонаправленного потока данных, предотвращая прямое изменение состояния родителя дочерним компонентом. Дочерний компонент лишь сигнализирует о происходящем, а обработка и изменение состояния происходят в родительском компоненте.