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

Vue 消息订阅与发布

消息订阅与发布,也可以实现任意组件之间的通信。

订阅者:就相当于是我们,用于接收数据。

发布者:就相当于是媒体,用于传递数据。

 安装消息订阅与发布插件:

在原生 JS 中 不太容易实现消息订阅与发布,所以我们这里借助第三方库实现 推荐使用 pubsub-js 库 它可以在任意一个框架中使用。

安装命令

npm i pubsub - js


安装完成后在需要使用的组件中引入即可

 消息订阅与发布使用流程:

首先创建 Content.vue 组件用于显示内容。并引入 pubsub-js 插件 通过 pubsub.subscribe 方法订阅消息 接收数据.

<template><div><h2>{{ name }}</h2></div>
</template><script>
import pubsub from "pubsub-js"
export default {name: "Content",data() {return {name: "张三"}},mounted() {// 订阅消息 getNamepubsub.subscribe("getName", (msg, name) => {console.log(msg, name);this.name = name;})// this.$bus.$on("getName", (name) => {//     this.name = name;// })}
}
</script>

然后创建 Edit.vue 组件用于编辑内容 并引入 pubsub-js 插件 通过 pubsub.publish 方法发布消息,传递数据。

<template><div><h2>编辑姓名</h2><input type="text" v-model="name"><button @click="editName">修改</button></div>
</template><script>
import pubsub from "pubsub-js"
export default {name: "Edit",data() {return {name: ''}},methods: {editName() {// 发布消息pubsub.publish("getName", this.name);// this.$bus.$emit("getName", this.name);}}
}
</script>

最后创建 Home.vue 页面,并引用 Content.vue 和 Edit.vue 组件。

<template><div><Content></Content><hr /><Edit></Edit></div>
</template><script>
import Content from "../components/Content"
import Edit from "../components/Edit"
export default {name: "Home",components: { Content, Edit }
}
</script>

:在订阅消息中,会接收到两个参数,第一个是消息名称 第二个才是接收的数据 另外订阅消息的回调函数必须是箭头函数 否则 this 会变成 undefined.

 

:订阅的消息想要销毁时,需要先创建一个变量接收这个消息,然后通过这个变量销毁,类似于清除定时器。

<template><div><h2>{{ name }}</h2></div>
</template><script>
import pubsub from "pubsub-js"
export default {name: "Content",data() {return {name: "张三"}},mounted() {// 订阅消息 getNamethis.pubId = pubsub.subscribe("getName", (msg, name) => {console.log(msg, name);this.name = name;})// this.$bus.$on("getName", (name) => {//     this.name = name;// })},beforeDestroy() {// 取消订阅 getNamepubsub.unsubscribe(this.pubId);// this.$bus.off("getName");}
}
</script>

备注:在 Vue 中还是推荐使用全局事件总线实现组件之间的通信,消息订阅与发布在 Vue 中的使用并不多。

原创作者: 吴小糖

创作时间:2023.4.21

相关文章:

Vue 消息订阅与发布

消息订阅与发布&#xff0c;也可以实现任意组件之间的通信。 订阅者&#xff1a;就相当于是我们&#xff0c;用于接收数据。 发布者&#xff1a;就相当于是媒体&#xff0c;用于传递数据。 安装消息订阅与发布插件&#xff1a; 在原生 JS 中 不太容易实现消息订阅与发布&…...

如何在你的云服务器/云主机上更新并使用最新版本的python(python3.11)

更新并使用最新版本的python3.11 第一步&#xff0c;登录云服务器&#xff0c;并更新系统包 打开您的终端&#xff08;Terminal&#xff09;或使用任意SSH客户端&#xff0c;输入如下命令来登录云主机&#xff1a; ssh 用户名IP地址 在输入密码后&#xff0c;您将成功登录到云…...

python学习——【第八弹】

前言 上篇文章 python学习——【第七弹】学习了python中的可变序列集合&#xff0c;自此python中的序列的学习就完成啦&#xff0c;这篇文章开始学习python中的函数。 函数 在学习其他编程语言的时候我们就了解过函数&#xff1a;函数就是执行特定任何以完成特定功能的一段代…...

铁路应答器传输系统介绍

应答器传输系统 应答器传输系统是安全点式信息传输系统&#xff0c;通过应答器实现地面设备向车载设备传输信息。 应答器可根据应用需求向车载设备传输固定的&#xff08;通过无源应答器&#xff09;或可变的&#xff08;通过有源应答器&#xff09;上行链路数据。 当天线单…...

Baumer工业相机堡盟工业相机如何通过BGAPI SDK直接实现Mono16位深度的图像保存(C#)

Baumer工业相机堡盟工业相机如何通过BGAPI SDK直接实现Mono16位深度的图像保存&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机保存位深度12/16位图像的技术背景代码案例分享1&#xff1a;引用合适的类文件2&#xff1a;通过BGAPI SDK直接保存Mono12/16图像3&#xf…...

C语言入门篇——介绍篇

目录 1、什么是C语言 1、C语言的优点 3、语言标准 4、使用C语言的步骤 5、第一个C语言程序 6、关键字 1、什么是C语言 1972年&#xff0c;贝尔实验室的丹尼斯里奇和肯汤普逊在开发UNIX操作系统时设计了C语言&#xff0c;C语言是在B语言的基础上进行设计。C语言设计的初衷…...

Latex数学公式排版

文章目录 Latex使用最佳方式&#xff1a;读官方文档Latex中的字符数学公式排版1.引入宏包:2.公式排版基础3.数学符号(1).希腊字母(2).指数,上下标,导数(3).分式和根式(4).关系符(5).算符(6).巨算符(7).箭头 Latex使用 最佳方式&#xff1a;读官方文档 The not so short intro…...

【Linux】-关于Linux的指令(上)

作者&#xff1a;小树苗渴望变成参天大树 作者宣言&#xff1a;认真写好每一篇博客 作者gitee:gitee 如 果 你 喜 欢 作 者 的 文 章 &#xff0c;就 给 作 者 点 点 关 注 吧&#xff01; TOC 前言 今天我们来讲关于Linux的基本指令&#xff0c;博主讲的指令会对应着Windows…...

【论文写作】引言写作的四个重要的语言点之时态!!!

在本篇文章当中&#xff0c;我们将着重介绍四个重要的写作语言要点之一的时态&#xff0c;其他语言点如下&#xff1a; 1. 时态 2. 标志性的衔接词 3. 主动、被动语态 4. 段落 1. 简单现在时和现在进行时 时态主要有现在时和现在进行时&#xff0c;看以下两个句子 I live in…...

Super Yolo论文翻译

论文&#xff1a;SuperYOLO: Super Resolution Assisted Object Detection in Multimodal Remote Sensing Imagery【IEEE】 论文地址&#xff1a; IEEE Xplore Full-Text PDF:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp&arnumber10075555项目地址&#xff1a;icey…...

【CocosCreator入门】CocosCreator组件 | ProgressBar(进度条)组件

Cocos Creator 是一款流行的游戏开发引擎&#xff0c;具有丰富的组件和工具&#xff0c;其中的ProgressBar组件是一种用于实现进度条效果的重要组件。它可以让我们在游戏中展示各种进度条效果&#xff0c;例如加载进度条、血条等。 目录 一、组件介绍 二、组件属性 三、脚本…...

大数据数仓维度建模

目录 维度建模分为三种&#xff1a; 1、星型模型&#xff1a; 2、雪花模型&#xff1a; 3、星座模型&#xff1a; 模型的选择&#xff1a; 维度表和事实表&#xff1a; 维度表&#xff1a; 维度表特性 &#xff1a; 事实表&#xff1a; 事实表特性&#xff1a; 事务型…...

ESP32设备驱动-BH1745NUC 亮度和颜色传感器驱动

BH1745NUC 亮度和颜色传感器驱动 文章目录 BH1745NUC 亮度和颜色传感器驱动2、硬件准备3、软件准备4、驱动实现BH1745NUC 是具有 IC 总线接口的数字颜色传感器 IC。 该 IC 感应红光、绿光和蓝光 (RGB) 并将它们转换为数字值。 高灵敏度、宽动态范围和出色的 Ircut 特性使该 IC …...

通达信VCP形态选股公式,憋了好几天才写出来

VCP形态的英文”Volatility Contraction Pattern”的缩写&#xff0c;意思是“波动收缩形态”。VCP形态是全美交易冠军马克米勒维尼的核心交易模式之一&#xff0c;在其著作《股票魔法师》中有详细介绍。 马克米勒维尼把VCP形态比喻为湿毛巾&#xff0c;拧过一次后仍含水&…...

vue 知识储备

vue2 和 vue3 的区别 模块拆分:vue3采用 compnent API 更注重模块上的拆分,而vue2中则需要使用完整的vuejs,无法使用单独的模块重写API:vue2组件方法挂载到实例中未使用也会被打包,vue3通过 tree-shaking机制,实现按需引入,减少用户打包后体积数据双向绑定:vue2使用 Ob…...

MySQL表的增删查改

目录 一 插入 1 基本语法 ①全列插入 ②指定列插入 ③多条记录插入 ④冲突更新 二 查询 查询全部数据 指定列查询 显示 拼接 取别名 去重查找 where 逻辑运算符和比较运算符 结果排序 Limit group by 分组 聚合函数 对于count 对于sum 对于group by 相关的语…...

详解C语言string.h中常用的14个库函数(三)

本篇博客继续讲解C语言string.h头文件中的库函数。本篇博客计划讲解3个函数&#xff0c;分别是&#xff1a;strstr, strtok, strerror。其中strstr函数我会用一种最简单的方式模拟实现。 strstr char * strstr ( const char * str1, const char * str2 );strstr可以在str1中查…...

无人机视频与GIS融合三维实景怎么实现?

无人机视频与GIS融合三维实景怎么实现?无人机三维GIS作为一项新兴的测绘重要手段&#xff0c;具有续航时间长、成本低、机动灵活等优点&#xff0c;为城市的规划建设带来极大便利。 那么此项技术有什么样的特点呢?下面智汇云舟就带大家一起来了解一下。 三维是将采集以及经运…...

瞬间让你效率提高一倍的高效学习方法

方法不对&#xff0c;努力白费&#xff1b;方法对了&#xff0c;事半功倍&#xff01;在学习的过程中我们会遇到各种困难与阻碍&#xff0c;如何发现并优化自己的学习方法就变得尤为重要。高效学习方法是指通过科学的、有效的方法来提高学习效率&#xff0c;实现更好的学习成果…...

442. 数组中重复的数据|||41. 缺失的第一个正数|||485. 最大连续 1 的个数

442. 数组中重复的数据 题目 给你一个长度为 n 的整数数组 nums &#xff0c;其中 nums 的所有整数都在范围 [1, n] 内&#xff0c;且每个整数出现 一次 或 两次 。请你找出所有出现 两次 的整数&#xff0c;并以数组形式返回。 你必须设计并实现一个时间复杂度为 O(n) 且仅…...

RAG+Agent+记忆图谱三重架构解析,2026年仅剩这4个工具通过企业级安全审计认证

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;RAGAgent记忆图谱三重架构解析&#xff0c;2026年仅剩这4个工具通过企业级安全审计认证 架构协同的本质逻辑 RAG 提供实时、可溯源的外部知识注入能力&#xff1b;Agent 负责任务分解、工具调用与多步推理闭…...

CANN 显存优化深度解析:梯度累积、混合精度与显存回收实战

CANN 显存优化深度解析&#xff1a;梯度累积、混合精度与显存回收实战显存不够跑不了大模型&#xff1f;这篇讲清楚昇腾上的显存优化技术&#xff0c;从原理到实践。显存问题诊断流程 OOM 报错 → 检查模型大小 → 分析梯度占用 → 定位瓶颈 → 选择优化方案显存问题是大模型训…...

2026这6款宝藏降AIGC软件大起底,一键把AIGC率降至安全线!

步入 2026 年&#xff0c;学术圈的风向早已不是过去那个只看查重率的时代了。如今&#xff0c;AI 检测系统像长了眼睛一样&#xff0c;精准捕捉每一段文字中的 AI 痕迹。高校的审核标准也愈发严苛&#xff0c;论文不仅要“看起来像人写的”&#xff0c;更要“读起来像人写的”。…...

无人机航拍林业树种分割|单木树冠检测|三维点云|遥感影像数据集10059期

无人机航拍林业树种分割&#xff5c;单木树冠检测&#xff5c;三维点云&#xff5c;遥感影像数据集10059期 面向林业资源调查、生态监测、智慧城市绿化管理的大规模高分辨率树种单木分割数据集&#xff0c;提供影像、点云、矢量多模态数据&#xff0c;支持树冠分割、树种识别、…...

一个电商项目 开发的完整流程是什么==从0 疑难杂症

--- 一、从0开始的完整流程&#xff08;时间顺序&#xff09;0&#xff09;立项&#xff1a;先定“能赚钱的最小闭环”先别谈技术&#xff0c;先定这4件…...

math 7 [parallel lines] 2026.05.22

math 7 [parallel lines] 2026.05.22 平行线练习...

5分钟搞定Windows风扇控制:Fan Control终极免费散热优化方案

5分钟搞定Windows风扇控制&#xff1a;Fan Control终极免费散热优化方案 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trend…...

Unity日志语义分析工具:Editor Console Pro深度解析

1. 这不是“换个皮肤”——Editor Console Pro 解决的是 Unity 开发中被长期忽视的“信息过载失能症”你有没有过这样的时刻&#xff1a;刚点下 Play&#xff0c;控制台瞬间炸出 200 行日志&#xff0c;红色错误、黄色警告、蓝色调试信息混作一团&#xff1b;你盯着屏幕三秒&am…...

深入解析Linux内核sk_buff内存布局与核心操作原理

1. 项目概述&#xff1a;从数据包到sk_buff的旅程在网络编程和内核开发领域&#xff0c;sk_buff&#xff08;socket buffer&#xff09;是一个绕不开的核心数据结构。它就像网络数据包在内核世界里的“标准集装箱”&#xff0c;负责承载从网卡接收到应用层发送的每一份数据。无…...

Zephyr GPIO API 深度解析:从设备树到代码

GPIO 是嵌入式开发中最基础、最频繁打交道的外设。点灯、读按键、控制继电器、触发中断……几乎每一个项目都是从 GPIO 开始的。理解 Zephyr 的 GPIO API 设计&#xff0c;也就理解了 Zephyr 驱动模型的核心哲学&#xff1a;用设备树描述"接在哪"&#xff0c;用统一 …...