Vue.js发布订阅模式学习-尚硅谷

Vue.js发布订阅模式学习-尚硅谷

使用这个模式需要一个第三方库,
安装要在cmd命令窗口中,使用管理员模式打开去安装,防止安装失败。

npm i pubsub-js

pubsub:
pub:‘publish 意思是发布’
sub: 'subscribe’意思是订阅

示例:学生发布信息,学校去订阅(不要想那么多,这就是一个场景)
步骤:1 引入这个第三方库
2 学生去发布信息
3 学校去订阅信息
在这里插入图片描述

在Student.vue中:

<template>
 <div class="student">
   <h1>{{msg}}</h1>
   <button @click="StudentNameForSchool()">把学生名给学校</button>
 </div>
</template>
<script>
// 1 导入第三方的库
import pubsub from 'pubsub-js'

export default {
 name: 'HelloWorld',
 data(){
   return{
     msg:'欢迎来到学生页面',
   }
 },
 methods:{
   StudentNameForSchool(){
     // 2 发布学生信息
     pubsub.publish('studentName','zebra')
   }
 },
}
</script>
<style scoped>
.student{
 background-color: pink;
}
</style>


在School.vue中

<template>
  <div class="school">
    <h1>{{msg}}</h1>
  </div>
</template>
<script>
import pubsub from 'pubsub-js'
export default {
  name: 'School',
  data(){
    return{
      msg:'欢迎来到学校页面',
    }
  },
  mounted(){
   // 3  订阅信息, 返回值是一个id值, pubsub.subscribe的参数中 逗号前面的是订阅的新闻名, 逗号后面的第一个参数是
   // 订阅的新闻名,第二个是学校接受的学生发的新闻的内容
   this.pubId = pubsub.subscribe('studentName',(messageName,data)=>{
       console.log("订阅到了学生发过来的信息",messageName,data)
     })
  },
  beforeDestroy() {
    pubsub.unsubsribe(this.pubId)
  },
}
</script>
<style scoped>
 .school{
   background-color: grey;
 }
</style>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值