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

  1. 订阅消息:消息名
  2. 发布消息:消息内容
    需求:把学生名给School
安装
 npm i pubsub-js
引入

School.vue
Student.vue

import pubsub from 'pubsub-js'
School.vue订阅消息
 mounted(){
   this.pubId= pubsub.subscribe('hello',function(msgName,data){
      console.log('有人发布了hello消息,hello消息的回调执行了',msgName,data)
    })
  },

注意:消息订阅的回调,能接受到两个参数
函数第一个参数是消息名
第二个参数是具体参数值

Student.vue发布消息
methods: {
    sendStudentName() {
      pubsub.publish("hello",this.name);
    },
  },

消息订阅与发布(任意组件间通信)_第1张图片

取消订阅

School.vue

beforeDestroy(){
    pubsub.unsubscribe(this.pubId)
  }

消息订阅与发布(任意组件间通信)_第2张图片

你可能感兴趣的:(Vue学习,javascript,vue.js,前端)