Ответ
Плюсы:
- Простота реализации для небольших проектов
- Прямая коммуникация между компонентами без глобального состояния
- Легко отслеживать поток событий в коде
Минусы:
- Сложность масштабирования (при большом количестве событий код становится запутанным)
- Нет централизованного управления состоянием
- Сложнее отлаживать (цепочки событий могут быть неочевидны)
Пример:
// Child component
this.$emit('update-data', newData);
// Parent component
<child-component @update-data="handleUpdate" />
Лучше использовать для простых случаев, в сложных проектах предпочтительнее Vuex/Pinia.