Что такое EventBus

Ответ

EventBus — это паттерн проектирования, который позволяет компонентам обмениваться событиями без прямых ссылок друг на друга. Это особенно полезно в сложных приложениях, где компоненты находятся на разных уровнях иерархии.

Как работает:

  • Компоненты подписываются на события (on)
  • Другие компоненты публикуют события (emit)
  • EventBus перенаправляет события подписчикам

Пример на Vue.js:

// Создание EventBus
const EventBus = new Vue();

// Подписка
EventBus.$on('user-logged-in', (user) => {
  console.log(`User ${user.name} logged in`);
});

// Публикация
EventBus.$emit('user-logged-in', { name: 'John' });

Плюсы:

  • Уменьшает связность компонентов
  • Упрощает коммуникацию между несвязанными компонентами

Минусы:

  • Может усложнить отладку
  • Риск утечек памяти, если не отписываться