vue-bus
TypeScript icon, indicating that this package has built-in type declarations

1.2.1 • Public • Published

vue-bus Build Status Coverage Status Downloads Version License

A event bus for Vue.js, support both Vue 1.0 and 2.0. See Vue documentation for more detail.

Installation

You can install it via yarn or npm.

$ yarn add vue-bus
$ npm install vue-bus --save

And it's available on jsdelivr or unpkg.

<!-- development version -->
<script src="https://cdn.jsdelivr.net/npm/vue-bus/dist/vue-bus.js"></script>
 
<!-- production version -->
<script src="https://cdn.jsdelivr.net/npm/vue-bus/dist/vue-bus.min.js"></script>

When used with a module system, you must explicitly install the bus via Vue.use():

import Vue from 'vue';
import VueBus from 'vue-bus';
 
Vue.use(VueBus);

You don't need to do this when using global script tags.

Usage

Listen and clean

// ...
created() {
  this.$bus.on('add-todo', this.addTodo);
  this.$bus.once('once', () => console.log('This listener will only fire once'));
},
beforeDestroy() {
  this.$bus.off('add-todo', this.addTodo);
},
methods: {
  addTodo(newTodo) {
    this.todos.push(newTodo);
  }
}

Trigger

// ...
methods: {
  addTodo() {
    this.$bus.emit('add-todo', { text: this.newTodoText });
    this.$bus.emit('once');
    this.newTodoText = '';
  }
}

Another way to use vue-bus

// xxx.js
import Vue from 'vue';
 
Vue.bus.emit('someEvent');

Note: on once off emit are aliases for $on $once $off $emit. See the API for more detail.

License

MIT

Dependencies (0)

    Dev Dependencies (14)

    Package Sidebar

    Install

    npm i vue-bus

    Weekly Downloads

    3,984

    Version

    1.2.1

    License

    MIT

    Unpacked Size

    10.3 kB

    Total Files

    10

    Last publish

    Collaborators

    • yangmingshan