Skip to main content
O EventBus é uma instância Vue utilizada como canal de comunicação entre componentes que não compartilham relação pai/filho. Permite emitir e escutar eventos de qualquer lugar da aplicação sem necessidade de Vuex.

Uso

import EventBus from '@/modules/eventBus';

// Emitir um evento
EventBus.$emit('carrinho:atualizado', { total: 3 });

// Escutar um evento
EventBus.$on('carrinho:atualizado', ({ total }) => {
    console.log(`Carrinho tem ${total} itens`);
});

// Remover listener (recomendado no beforeDestroy)
EventBus.$off('carrinho:atualizado');

Boas práticas

  • Sempre remova os listeners no beforeDestroy do componente para evitar memory leaks.
  • Prefira Vuex para estado compartilhado complexo. Use o EventBus para notificações pontuais e simples.
  • Nomeie os eventos com namespacing (ex: carrinho:aberto, produto:adicionado) para evitar colisões.