Vue-组件间通信之任意组件通信(消息订阅与发布)

这篇博客介绍了如何利用pubsub-js库在JavaScript中进行发布/订阅模式的消息传递,从而实现在不同组件间的通信。内容包括如何安装库、订阅和发布消息的步骤,以及在Vue应用中如何在组件生命周期钩子中正确使用这些方法。此外,还强调了这种方法不仅适用于Vue,也可以用于其他需要组件间通信的场景。
摘要由CSDN通过智能技术生成

  1. 在控制台下载库:

    npm i pubsub-js
    

      2.引入:

     import pubsub from 'pubsub-js'

使用:

(1 )订阅消息:(接收发布消息)

  1. 这里的hello必须要有

  2. msgname --> 发布消息的消息名称,data --> 是消息的对象或者是值

  3. 这里回调函数的两个参数必须要有,否则报错!!

  4. 必须要写在mounted 挂载钩子里

mounted() {
     //     回调函数接收两个被传过来的信息
     //    msgname,data 是发布消息传来的信息  a 是发布消息的名称,b是传来的对象
          //   函数里必须接收两个数据
          //   hello是自定义名称
       this.pubid = pubsub.subscribe('hello',(msgname,data)=>{
              console.log('我是订阅消息:',msgname,data);
         })     },

(2 )发布消息:(要传给订阅消息)

  1. 这里的名字是数据的名字,必须要写,订阅消息的msgname接收

  2. this.message是我在data域里定义的数据

 publishMessage(){
            pubsub.publish('hello',this.message)
        }

( 3 )在即将销毁的钩子取消订阅

  1. 这里最好用完后取消订阅

beforeDestroy() {
          this.pubsub.unsubscribe(this.publid)
     },

本方法不单单只适用于vue,由于vue的全局事件总线与此类似,所以vue很少使用

但是也是一个能实现任意组件通信的一种方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值