UNPKG

@mundoit-lib/plugin-vue-event

Version:

Vue 3 plugin to handle global events between components, inspired by vue-events. This plugin provides a simple and efficient event bus system, allowing to emit, listen and unregister events in an intuitive way. Compatible with Vue 2 and Vue 3.

34 lines (31 loc) 779 B
import mitt from 'mitt'; // src/eventBus.ts var eventBus = mitt(); var useEventBus = () => { return { emit(event, ...args) { eventBus.emit(event, args); }, on(event, callback) { const listener = (args) => callback(...args); eventBus.on(event, listener); return listener; }, fire(event, ...args) { eventBus.emit(event, args); }, off(event, listener) { eventBus.off(event, listener); }, once(event, callback) { const listener = (args) => callback(...args); const wrappedListener = (args) => { listener(args); eventBus.off(event, wrappedListener); }; eventBus.on(event, wrappedListener); return wrappedListener; } }; }; export { eventBus, useEventBus };