【Vue2.0学习】—消息订阅与发布(六十二)

简介: 代码如下

【Vue2.0学习】—消息订阅与发布(六十二)

2345_image_file_copy_17.jpg

第一步:安装npm i pubsub

npm i pubsub-js

第二步:引入

 import pubsub from 'pubsub-js'

第三步:接收数据 A组想接收数据,则在A组中订阅消息,订阅的回调留在A组件自身。

2345_image_file_copy_22.jpg

第四步:提供数据

pubsub.publish('XXX',数据)

第五步:最好在beforeDestroy钩子中,用 pubsub.unsubscribe(pid)去取消订阅

Student.vue

<template>
  <div class="box">
    <h2>学生姓名:{{name}}</h2>
    <h2>学生年龄:{{age}}</h2>
    <button @click="sendStudentName">把学生名给School组件</button>
 </div>
</template>
<script>
import pubsub from 'pubsub-js'
export default {
    name:'Student',
    data(){
        return{
            name:'王同学',
            age:20
        }
    },
  methods:{
    sendStudentName(){
        // this.$bus.$emit('hello',666)
        pubsub.publish('hello',666)
    }
  }
}
</script>
<style scoped>
.box{
    background-color: skyblue;
}
</style>

School.vue

<template>
    <div class="demo">
        <h2>学校名称:{{name}}</h2>
        <h2>学校地址:{{address}}</h2>
        <!-- 
        全局事件总线(GlobalEventBus)
        一种组件间通信的方式,适用于任意组件间通信
        安装全局事件总线
     -->
    </div>
</template>
<script>
    import pubsub from 'pubsub-js'
    export default {
        name: 'School',
        data() {
            return {
                name: 'B站大学',
                address: '上海'
            }
        },
        mounted() {
            // this.$bus.$on('hello',(data)=>{
            //     console.log('我是School组件,收到了数据',data)
            // })
            this.pubId = pubsub.subscribe('hello', (msgname, data) => {
                //  console.log(this)//vm
                console.log('有人发布了hello消息,hello消息的回调执行了', msgname, data)
            })
        },
        beforeDestroy() {
            // this.$bus.$off('hello')
            pubsub.unsubscribe(this.pubId)
        }
    }
</script>
<style scoped>
    .demo {
        background-color: orange;
    }
</style>

2345_image_file_copy_19.jpg

2345_image_file_copy_20.jpg

2345_image_file_copy_21.jpg


相关文章
|
3月前
|
JavaScript
vue消息订阅与发布
vue消息订阅与发布
|
2月前
|
缓存 JavaScript
vue2知识点:消息订阅与发布
vue2知识点:消息订阅与发布
40 1
|
4月前
|
JavaScript
Vue学习之--------消息订阅和发布、基础知识和实战应用(2022/8/24)
这篇文章介绍了Vue中消息订阅和发布的机制,作为组件间通信的一种方式,特别适用于任意组件间的通信。文章通过基础知识讲解和具体的代码实例,展示了如何使用`pubsub-js`库来安装、订阅、发布消息,并在组件销毁前取消订阅以避免内存泄漏。
Vue学习之--------消息订阅和发布、基础知识和实战应用(2022/8/24)
|
JavaScript
【常见面试题】JS 发布者、订阅者模式
面试中经常出现问到如何实现JS 发布者、订阅者模式。
112 2
【常见面试题】JS 发布者、订阅者模式
|
7月前
|
JavaScript 前端开发
Vue订阅发布模式
Vue.js是一个流行的JavaScript框架,它提供了一种名为"观察者模式"的订阅发布模式(也称为发布-订阅模式或事件模型)来管理组件之间的通信。
67 0
|
7月前
【Vue2.0学习】—消息订阅与发布(六十二)
【Vue2.0学习】—消息订阅与发布(六十二)
【Vue2.0】— 消息订阅与发布pubsub(二十)
【Vue2.0】— 消息订阅与发布pubsub(二十)
|
JavaScript
Vue 消息订阅与发布
Vue 消息订阅与发布
|
前端开发
前端学习笔记202306学习笔记第四十七天-vue-创建发布者2
前端学习笔记202306学习笔记第四十七天-vue-创建发布者2
60 0
|
前端开发
前端学习笔记202306学习笔记第四十七天-vue-创建发布者6
前端学习笔记202306学习笔记第四十七天-vue-创建发布者6
52 0