vue-simple-events
vue-simple-events
Yet another event management plugin, but WITHOUT Vue instance
About
This is just a simple wrapper around js-simple-events that helps to manage events in a simple way without creating a Vue instance. It also supports TypeScript!
And it's really light - ~1kb in size!
Methods
Method | Params | Description |
---|---|---|
vm.$events.emit |
event, payload |
Emit the event with the given payload. |
vm.$events.$emit |
event, payload |
Alias for emit |
vm.$events.fire |
event, payload |
Alias for emit |
vm.$events.on |
event, callback |
Listen for the event with the given callback. |
vm.$events.$on |
event, callback |
Alias for on |
vm.$events.listen |
event, callback |
Alias for on |
vm.$events.once |
event, callback |
Listen for the event once, after handling - remove the listener. |
vm.$events.$once |
event, callback |
Alias for $once |
vm.$events.off |
event, callback |
Remove event listener(s) for the event. |
vm.$events.$off |
event, callback |
Alias for off |
vm.$events.remove |
event, callback |
Alias for off |
Examples
// Import and initialize
import Vue from 'vue'
import EventManager from 'vue-simple-events'
Vue.use(EventManager)
/// Component 1
methods: {
eventHandler(payload) {
console.log('Yay, events work!', payload);
}
},
created() {
this.$events.on('test', this.eventHandler);
this.$events.once('test', () => console.log('This will be called just once!'));
},
beforeDestroy() {
this.$events.off('test', this.eventHandler);
}
/// Component 2
created() {
// Emit events
this.$events.emit('test', 'Hello!');
// Logs:
// -> Yay, events work! Hello!
// -> This will be called just once!
this.$events.emit('test', 'Hello!');
// Logs:
// -> Yay, events work! Hello!
// (The 'once' handler isn't fired)
}