vue消息订阅与发布vue 消息订阅与发布
⼀、场景
  vue中⾮⽗⼦组件之间通信时,使⽤vuex有时间会很⿇烦,这时候可以通过bus总线来实现消息的订阅与发布
⼆、实现⽅法
  1、main.js
//main.js
Vue.prototype.bus = new Vue();
new Vue({
render: h => h(App)
...
}).$mount('#app');
/*
*通过把⼀个vue实例赋于Vue构造函数原型上的⼀个属性bus(当然起任何名称都是可以的)
*⽽每个Vue实例都是有$emit和$on⽅法的
*由于bus属性在Vue原型上,根据原型链查规则,在页⾯中我们就可以通过 this.bus.$emit 和
*this.bus.$on来进⾏跨组件通信了
*/
  2、消息发布
  可以在任何组件中
//发布⼀个事件
this.bus.$emit('even-name',args1, arg2 , ...)
  3、消息订阅
js原型和原型链的理解
  ⼀般可以写在 created 或 mounted 中
// 消息订阅
this.bus.$on('event-name', (...args) => {
//接收参数,触发⽅法相应的⽅法等操作
})
  ~~ 以上就ok了

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。