UNPKG

vue-bus-manager

Version:

vue bus event manager

30 lines (26 loc) 651 B
export default function bus(Vue) { const version = Number(Vue.version.split('.')[0]) if (version < 2) return var bus = new Vue() Object.defineProperty(Vue.prototype, '$bus', { get () { return bus } }) Vue.mixin({ created () { this.$busListeners = {} let $bus = this.$options.listener for (let name in $bus) { this.$busListeners[name] = $bus[name].bind(this) bus.$on(name, this.$busListeners[name]) } }, beforeDestroy () { for (let name in this.$busListeners) { bus.$off(name, this.$busListeners[name]) } this.$busListeners = null } }) }