Bring Vue.js 1 events option and $emit to Vue.js 2.
npm install vue-option-events --save
import Vue from 'vue';
import vueOptionEvents from 'vue-option-events';
Vue.use(vueOptionEvents);
Component A
new Vue({
methods: {
show(hiMessage) {
console.log(hiMessage);
}
},
events: {
hello(helloMessage) {
console.log(helloMessage);
},
hi: 'show'
}
});
Component B
new Vue({
methods: {
send() {
this.$emit('hello', 'world');
this.$emit('hi', 'world');
}
}
});
new Vue({
methods: {
send() {
this.$event.$emit('hello', 'world');
}
}
});
import eventBus from 'vue-option-events';
eventBus.$emit('hello', 'world');
Vue.use(vueOptionEvents, {
keepAlive: false
});
keepAlive
enable if you want keep handling events on inactive keep-alive components, defaultfalse