项目开发中由于只用了很少的地方,组件互相传值,想自己写一个简便的bus,代码如下
Vue.prototype.$self_on = function(Fname, fn) {
Vue.prototype.$self_on.obj[Fname] = fn;
}
Vue.prototype.$self_on.obj = {};
Vue.prototype.$self_emit = function(Fname, value) {
if(Vue.prototype.$self_on.obj[Fname]) {
Vue.prototype.$self_on.obj[Fname](value);
}
}
Vue.prototype.$self_remove = function(Fname){
delete Vue.prototype.$self_on.obj[Fname]
}
// 先注册一个监听函数
this.$self_on('change', (v) => {console.log(v)})
// 再在相关页面触发
this.$self_emit('change', 123)
//最后在页面销毁的时候删除
this.$self_remove('change')