Ответ
Emit — это механизм передачи данных от дочернего компонента родительскому в Vue.js. Дочерний компонент "испускает" событие с данными, а родительский подписывается на это событие и обрабатывает его.
Пример:
<!-- ChildComponent.vue -->
<button @click="$emit('customEvent', data)">Click me</button>
<!-- ParentComponent.vue -->
<ChildComponent @customEvent="handleEvent"/>
Ключевые особенности:
- Имя события должно быть в kebab-case
- Можно передавать любое количество аргументов
- В Composition API используется defineEmits()
- Альтернатива props для передачи данных вверх по иерархии
Это основной способ реализации паттерна "сверху-вниз props, снизу-вверх events" во Vue.