当前位置: 首页 > news >正文

(三十三)Vue之消息订阅与发布

文章目录

  • 消息订阅与发布
    • 理解
    • 使用步骤
  • 改造TodoList为消息订阅与发布

上一篇:(三十二)Vue之全局事件总线

消息订阅与发布

理解

这种方式的思想与全局事件总线很相似,一种组件间通信的方式,适用于任意组件间通信
它包含以下操作:

  • (1) 订阅消息 --对应绑定事件监听
  • (2) 发布消息 --分发事件
  • (3) 取消消息订阅 --解绑事件监听

需要引入一个消息订阅与发布的第三方实现库: PubSubJ
在线文档: https://github.com/mroderick/PubSubJS

使用步骤

第一步:使用npm i pubsub-js把第三方实现库PubSubJ安装
第二步:在用到的组件使用import pubsub from 'pubsub-js'引入
第三步:接收数据

	methods(){demo(data){......}}mounted() {this.pid = pubsub.subscribe('xxx',this.demo) //订阅消息}

第四步:提供数据

pubsub.publish('xxx',数据)

第五步:在beforeDestroy钩子中取消消息订阅

PubSub.unsubscribe(pid)

改造TodoList为消息订阅与发布

我们把给Item组件与App组件的交互从全局事件总线替换成消息订阅与发布
第一步:使用npm i pubsub-js安装
第二步:在Item组件与App组件使用import pubsub from 'pubsub-js'引入
第三步:Item组件接收数据

  methods:{handleCheck(id){//console.log(id)//通知App组件将对应的todo对象的done取反//this.checkTodo(id)//this.$bus.$emit('checkTodo',id)pubsub.publish('checkTodo',id)},handleDelete(id){if (confirm('确定删除吗?')) {//通知App组件将对应的todo对象//console.log(id)//this.deleteTodo(id)//this.$bus.$emit('deleteTodo',id)pubsub.publish('deleteTodo',id)}}}

第四步:App组件提供数据

	mounted() {/*this.$bus.$on('checkTodo',this.checkTodo)this.$bus.$on('deleteTodo',this.deleteTodo)*/this.pubId1 = pubsub.subscribe('checkTodo',this.checkTodo)this.pubId2 = pubsub.subscribe('deleteTodo',this.deleteTodo)}

第五步:App组件在beforeDestroy钩子中取消消息订阅

	beforeDestroy() {/*this.$bus.$off('checkTodo')this.$bus.$off('deleteTodo')*/pubsub.unsubscribe(this.pubId1)pubsub.unsubscribe(this.pubId2)}
http://www.lryc.cn/news/7466.html

相关文章:

  • Http中你必须知道那点事
  • ViewBinding使用入门
  • Retrofit源码分析实践(七)【Retrofit ConvertFactory的功能实现】
  • 介电常数常用测量方法综述
  • 重生之我是赏金猎人(三)-SRC漏洞挖掘-强行多次FUZZ发现某厂商SSRF到redis密码喷洒批量反弹Shell
  • 学会分享,学会生活,分享5款简单易用的软件。
  • Redux 与 Vuex 的区别总结
  • QT(15)- QFile
  • GaiaX开源解读 | 表达式作为逻辑动态化的基础,我们是如何设计的
  • python中adb shell相关操作
  • python 之 资源使用与控制 resource模块
  • 蓝库云|8项关键让你看透企业「数字转型」,零代码是惊喜
  • (五)、编辑页面-发布长文-富文本编辑【uniapp+uinicloud多用户社区博客实战项目(完整开发文档-从零到完整项目)】
  • 你是真的“C”——【经典面试知识点】数据在内存中的大小端存储方式
  • 从零开始的数模(二十六)单因素方差分析
  • C++变量类型
  • win10 安装 vs2015(社区版本)以及opencv-4.5.5
  • 867. 转置矩阵
  • Datawahle组队学习——妙趣横生大数据 Day1
  • 网友眼中越老越吃香的行业,果然是风向变了!
  • 为什么时间序列预测这么难?本文将给你答案
  • STC15系列单片机通过串口多字节数据读写EEPROM操作
  • 计算机网络-ip数据报
  • 从零开始学C
  • 【云原生】手把手带你从零开始搭建kubernetes最新版本实战
  • trivy os软件包扫描原理分析
  • 算法训练营 day48 动态规划 完全背包 零钱兑换 II 组合总和 Ⅳ
  • Java 基础(1)—泛型简单使用
  • 内存卡损坏了怎么恢复?
  • Mysql使用规范(纯技术和实战建议)