vue-cbus
v0.0.24
Published
Easy event handling in VueJS (with contexts)
Downloads
2
Readme
Table of contents
Introduction
This plugin provides an easy way to handle events in VueJS (V.2) using contexts.
Installation
You can install this plugin using npm
npm i --save vue-cbus
Plug it into your app
To use vue-cbus in your VueJS app, you just need to tell VueJS to use it.
import Vue from 'vue'
import CBus from 'vue-cbus'
Vue.use(CBus, {
debugMode: false
})
// ...
The debugMode option controls if vue-cbus will log debug messages.
Usage
vue-cbus automatically creates a global context when the application starts. You can access it in your component using this.$gbus, like shown in the example below
// component1.vue
export default {
methods: {
onSomeEvent () {
console.log('Some event ocurred')
}
},
mounted () {
this.$gbus.on('someEvent', this.onSomeEvent)
}
}
// component2.vue
export default {
methods: {
emitSomeEvent () {
this.$gbus.emit('someEvent')
}
}
}
You can also use local contexts
// component1.vue
export default {
methods: {
someEventHandler () {
console.log('Some event ocurred')
},
anotherEventHandler () {
console.log('Another event ocurred')
}
},
mounted () {
this.$lbus('MyLocal').on('someEvent', this.someEventHandler)
this.$lbus('Another').on('someEvent', this.anotherEventHandler)
}
}
// component2.vue
export default {
methods: {
emitSomeEvent () {
this.$lbus('MyLocal').emit('someEvent')
}
}
}
// component3.vue
export default {
methods: {
emitAnotherEvent () {
this.$lbus('Another').emit('someEvent')
}
}
}
Documentation
This plugin injects 3 prototypes into the Vue instance:
- Vue.prototype.$gbus, that gives you access to the global bus
- Vue.prototype.$lbus, that let yout get access (or create) a local bus
- Vue.prototype.$cbus, that let you control your local buses (create, delete, purge, get)
The Bus object
obj.on(eventName, callback)
: Adds callback to the eventName callbacks Map. eventName is create if it does not already exist.obj.off([eventName, [callback]])
: Remove callback from eventName. If callback is not specified, removes all callbacks from eventName. Also, if none argument specified remove the eventName.obj.once(eventName, callback)
: Auto removable event.
$cbus
create(name)
: Create a new context called namedelete(name)
: Removes de context called namepurge()
: Removes all contextsget(name)
: Get context name. It creates a new context if name does not exist.Obs.: $lbus is an alias for $cbus.get.