非常简单的使用pubsub-js库,用于任意组件间通信。、
使用步骤:
1.npm i pubsub-js
2.在需要使用的地方引入pubsub
import pubsub from 'pubsub-js'
3.接受数据pubsub.subscribe('demo',回调函数(放在组件自身))
methods(){
demo(data){......}
}
......
mounted() {
this.pid = pubsub.subscribe('xxx',(_,data)=>{
console.log(this)
// console.log('有人发布了hello消息,hello消息的回调执行了',msgName,data)
//msgName是消息的名字一般不用,用下划线占用 _
}) //订阅消息
}
4.发送数据pubsub.publish('demo',数据)
methods: {
sendStudentName(){
pubsub.publish('demo',666)
}
},
最后最好在发布订阅的同时,在组件中用beforeDestroy钩子中,去取消订阅(pubsub.unsubscribe)
beforeDestroy(){
pubsub.unsubscribe(this.pubId)
}