消息订阅与发布pubsub

2023-10-22 16:15
文章标签 发布 订阅 消息 pubsub

本文主要是介绍消息订阅与发布pubsub,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

消息订阅与发布

  1. 订阅消息:消息名
  2. 发布消息:消息内容

在这里插入图片描述

A组件想使用C组件里面的东西,A需要数据,C是提供者。

在A组件里面订阅一个消息,假设订阅的消息名叫做Demo,指定回调函数叫test;C发布消息,消息名也必须是Demo,数据是666。A订阅消息test函数触发调用,666就会传到test函数。

任何一个框架里面都可以使用pubsub–js进行消息的订阅与发布。

安装pubsub库

npm i pubsub-js@1.6.0

引用库

import pubsub from 'pubsub-js'

pubsub是个对象,含有很多有用的方法.School组件挂载完毕马上订阅消息

    mounted() {pubsub.subscribe('hello',function name(params) {console.log('有人发布了hello消息,hello消息的回调执行了');})}

以上是School组件订阅消息,下面是Student组件发布消息

    mounted() {this.pubId= pubsub.subscribe('hello', (msgName,data) =>{console.log('有人发布了hello消息,hello消息的回调执行了', msgName, data);})},beforeDestroy() {pubsub.unsubscribe(this.pubId)}

总结

  1. 一种组件间通信的方式,适用于任意组件间通信。
  2. 使用步骤:
    1. 安装pubsub:npm i pubsub-js
    2. 引入:import pubsub from ‘pubsub-js’
    3. 接收数据:A组件想要接收数据,则在A组件中订阅消息,订阅的回调留在A组件自身
    methods(){demo(data){}
    },
    ......
    mounted(){this.pid=pubsub.subscribe('xxx',this.demo)
    }
    1. 提供数据 pubsub.publish(‘xxx’,数据)
    2. 最好在beforeDestory钩子中,用 pubsub.unsubscribe(pId)取消订阅

TodoList的消息订阅与发布实践

App组件需要数据,删除id
MyItem提供数据,发布消息

App消息订阅

App引入库,然后订阅消息deleteTodo

 deleteTodo(_,id) {this.todos = this.todos.filter((todo) => {return todo.id!==id})},,

第一个参数是消息名,但是消息名会显示为灰色因为定义了没有使用,所以更好的是使用_占位符,这样才可以保证收到的是正常的参数。
订阅消息之后再销毁之前再取消订阅

  mounted() {this.$bus.$on('checkTodo', this.checkTodo)// this.$bus.$on('deleteTodo', this.deleteTodo)this.pubId= pubsub.subscribe('deleteTodo',this.deleteTodo)},beforeDestroy() {this.$bus.$off('checkTodo')// this.$bus.$off('deleteTodo')pubsub.subscribe( this.pubId)}

MyItem消息发布

   handleDelete(id) {if (confirm('确定删除吗?')) {pubsub.publish('deleteTodo',id)}}if (confirm('确定删除吗?')) {pubsub.publish('deleteTodo',id)}}

这篇关于消息订阅与发布pubsub的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/262445

相关文章

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

SpringIntegration消息路由之Router的条件路由与过滤功能

《SpringIntegration消息路由之Router的条件路由与过滤功能》本文详细介绍了Router的基础概念、条件路由实现、基于消息头的路由、动态路由与路由表、消息过滤与选择性路由以及错误处理... 目录引言一、Router基础概念二、条件路由实现三、基于消息头的路由四、动态路由与路由表五、消息过滤

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

Nginx实现前端灰度发布

《Nginx实现前端灰度发布》灰度发布是一种重要的策略,它允许我们在不影响所有用户的情况下,逐步推出新功能或更新,通过灰度发布,我们可以测试新版本的稳定性和性能,下面就来介绍一下前端灰度发布的使用,感... 目录前言一、基于权重的流量分配二、基于 Cookie 的分流三、基于请求头的分流四、基于请求参数的分

Spring Boot整合消息队列RabbitMQ的实现示例

《SpringBoot整合消息队列RabbitMQ的实现示例》本文主要介绍了SpringBoot整合消息队列RabbitMQ的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录RabbitMQ 简介与安装1. RabbitMQ 简介2. RabbitMQ 安装Spring

springboot rocketmq配置生产者和消息者的步骤

《springbootrocketmq配置生产者和消息者的步骤》本文介绍了如何在SpringBoot中集成RocketMQ,包括添加依赖、配置application.yml、创建生产者和消费者,并展... 目录1. 添加依赖2. 配置application.yml3. 创建生产者4. 创建消费者5. 使用在

如何通过Python实现一个消息队列

《如何通过Python实现一个消息队列》这篇文章主要为大家详细介绍了如何通过Python实现一个简单的消息队列,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录如何通过 python 实现消息队列如何把 http 请求放在队列中执行1. 使用 queue.Queue 和 reque