vue-global-emitter

Global vue emitter which realising pub/sub without and with pull
2,369
Install
npm install vue-global-emitter
Latest Version:1.1.0
Vue:2
License:MIT
Last Updated:Dec 8, 2022
Links: GitHub  ·  npm
Maintainer: grinat

vue-global-emitter

Simple global vue emitter which realising pub/sub without and with pull for Vue.js

Examples

Open (see in /examples)

Installation

npm install vue-global-emitter --save
Use without vue
import {Emitter} from 'vue-global-emitter'

const em = new Emitter()
em.emit('my-event', {foo: 'bar'})
Use in vue
import Vue from 'vue'
import VueGlobalEmitter from 'vue-global-emitter'

Vue.use(VueGlobalEmitter)

Usage

Send event

this.$emitter.emit('my-event', {foo: 'bar'})

Listen event

this.$emitter.listen('my-event', data => console.log(data))

Send event with delivery

let delay = 200
this.$emitter.emitWithDelivery('my-event-for-not-created-component', {foo: 'bar'}, delay)

Read

this.$emitter.listen('my-event-for-not-created-component', response => {
   // notify about read
   response.received()
})

Mass subscribe/unsubscribe

 export default {
    created () {
      // create subsribe
      this.subsGroup = this.$emitter.group(
        this.$emitter.listen('im.socket', this.onSocketMessage),
        this.$emitter.listen('foo', this.onFoo)
      )
    },
    methods: {
      ...
    },
    destroyed () {
      // unsubsribe all
      this.subsGroup.unsubscribe()
    }
 }
 export default {
    // create subsribe
    created () {
        this.messageSubs = this.$emitter.listen('im.socket', this.onSocketMessage)
    },
    methods: {
        // handle message
        onSocketMessage (data) {

        }
    },
    destroyed () {
        // dont forget unsubcribe
        this.messageSubs.unsubscribe()
    }
 }

Development

build:

npm i
npm run build

test:

npm run test

Related Packages

@composy/event-vue

LDesign 事件系统 - Vue 3 适配层

0
vue

The progressive JavaScript framework for building modern web UI.

468,054,189 54,906
vue
eslint-plugin-vue

Official ESLint plugin for Vue.js

266,364,830 4,591
@vueuse/shared
260,835,866 22,398

Version History

Version Released Vue License
1.1.0 ^2.5.22 MIT
1.0.1 ^2.5.22 MIT
1.0.0 ^2.5.22 MIT
0.1.3 ^2.5.22 MIT
0.1.2 ^2.5.8 MIT