vue3使用mitt.js进行各种组件间通信

我们在vue工程中,除开vue自带的什么父子间,祖孙间通信,还有一个非常方便的通信方式,类似Vue2.x 使用 EventBus 进行组件通信,而 Vue3.x 推荐使用 mitt.js。可以实现各个组件间的通信

优点:首先它足够小,仅有200bytes,其次支持全部事件的监听和批量移除,它还不依赖 Vue 实例,所以可以跨框架使用

1、在项目中引入mitt.js

npm install --save mitt

2、在项目中自定义ts文件引入并暴露mitt.js

我这里是在新建文件夹utils下新建文件命名app-events.ts

//app-events.ts文档
/*** 业务中跨域调用、解决耦合问题*/
import mitt from 'mitt'
const AppEvents = mitt()
export default AppEvents

3、使用mitt.js

(1)在组件branchAside.vue,传输参数给组件 fileAside.vue (这两个组件可以没任何关系)

在组件branchAside.vue里面mitt.js使用如下:

声明方法和传参数

<script lang="ts" setup>import AppEvents from '@/utils/app-events' //引入mitt.js// 调用nameFn方法就可以触发
const nameFn = (item: string='test') => {
// AppEvents.emit('自定义名字', 参数)AppEvents.emit('sideOpen', item) //使用emit传送方法名字和参数
}</script>

(2)在组件 fileAside.vue里面接受方法和参数:

<script lang="ts" setup>
import { onBeforeUnmount, onMounted } from 'vue'  // 引入页面初始化的生命周期和销毁的生命周期
import AppEvents from '@/utils/app-events' // 引入mitt.js//在页面初始生命周期,通过on监听方法和接受参数
onMounted(() => {
//AppEvents.on('方法名字',(val:any)=>{console.log('接收到的参数-->', val)})AppEvents.on('sideOpen', (val: any) => {console.log('mitt---->', val)})
})// 页面销毁,通过off注销该自定义命名的方法
onBeforeUnmount(() => {AppEvents.off('sideOpen')
})
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/13779.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【云原生】Kubeadm部署k8s

目录 一、部署步骤 二、部署kubernetes 2.1、所有节点关闭防火墙 核心防护 iptables规则 swap交换 2.2、修改主机名并添加主机映射 2.3、调整内核参数 三、安装Docker 3.1、所有节点安装docker 3.2、所有接点添加镜像加速器 3.3、开启docker、并设置开机自启、查看状态…

ESP32学习笔记:WS2812B驱动

WS2812B是一款贴片RGB灯。由于采用了单总线通讯&#xff0c;所以需要特别关注下它的通讯时序。 调试细节&#xff1a; 本来以为会是一个比较简单的调试&#xff0c;结果还是花了很长时间才调试完成。 首先是关于ESP32的纳秒级延时确定&#xff0c;当时按照空指令始终调试不出来…

Linux中的计划任务(crontab)详解

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Linux &#xff1a;从菜鸟到飞鸟的逆袭》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、前言 1、Linux的起源与发展 2、什么是计划任务&#xf…

超详细的前后端实战项目(Spring系列加上vue3)(一步步实现+源码)前端篇(一)

最近想着一步步搭建一个前后端项目&#xff0c;将每一步详细的做出来。&#xff08;如果有不足或者建议&#xff0c;也希望大佬们指出哦&#xff09; 前端初始化 1.根据vue脚手架创建vue项目 这里可以用很多方法创建vue项目&#xff0c;大家看着创建吧&#xff0c;只要能创建…

k8s 部署mqtt简介

在Kubernetes&#xff08;K8s&#xff09;中部署MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;服务通常涉及以下几个步骤&#xff1a; 选择MQTT Broker MQTT Broker是MQTT消息传递的中间件。流行的MQTT Broker包括Mosquitto, HiveMQ, EMQ X等。你需要选择一…

机器学习面试问题总结 | 贝叶斯网络

本文给大家带来的百面算法工程师是机器学习中贝叶斯网路面试总结&#xff0c;文章内总结了常见的提问问题&#xff0c;旨在为广大学子模拟出更贴合实际的面试问答场景。在这篇文章中&#xff0c;我们还将介绍一些常见的面试问题&#xff0c;并提供参考的回答及其理论基础&#…

K8S Secret管理之SealedSecrets

1 关于K8S Secret 我们通常将应用程序使用的密码、API密钥保存在K8S Secret中&#xff0c;然后应用去引用。对于这些敏感信息&#xff0c;安全性是至关重要的&#xff0c;而传统的存储方式可能会导致密钥在存储、传输或使用过程中受到威胁&#xff0c;例如在git中明文存储密码…

FreeRTOS_事件组_学习笔记

事件组 原文链接 事件组是一个整数&#xff0c;其中的高8位留给内核&#xff0c;只能用其他位来表示时间 每一位代表一个事件&#xff0c;且每个时间的含义由程序员决定 1为发生&#xff0c;0为未发生 一个/多个任务或ISR都能读写这些位 可以等待某一位&#xff0c;也可以等待…

如何理解合约中的引用类型(3)——Mapping

映射&#xff08;mapping&#xff09; 声明形式&#xff1a;mapping(key type > value type)keytype可以是除枚举外的几乎任何基本类型&#xff0c;包括bytes和string&#xff0c;不包括用户自定义的复杂类型-合约&#xff0c;枚举&#xff0c;结构&#xff0c;映射value t…

简单美观易上手的 Docker Compose 可视化管理器 Dockge

本文首发于只抄博客&#xff0c;欢迎点击原文链接了解更多内容。 前言 Dockge 是 Uptime Kuma 作者的新作品&#xff0c;因此 UI 风格与 Uptime Kuma 基本一致&#xff0c;如果你正在使用 Uptime Kuma 的话&#xff0c;那么 Dockge 的 UI 设计应该也不会让你失望。Dockge 主打…

智慧校园为高校带来哪些价值

在21世纪的教育图景中&#xff0c;"智慧"不再仅仅是一个科技名词&#xff0c;它已成为衡量教育现代化水平的重要标志。智慧校园&#xff0c;这一融合了物联网、大数据、云计算等先进技术的教育新形态&#xff0c;正逐步成为高校转型升级的关键驱动力。本文将从多个维…

note-网络是怎样连接的2 协议栈和网卡

助记提要 协议栈的结构协议栈创建连接的实际过程协议栈发送数据包的2个判断依据TCP确认数据收到的原理断开连接的过程路由表和ARPMAC地址的分配MAC模块的工作通过电信号读取数据的原理网卡和协议栈接收包的过程ICMPUDP协议的适用场景 2章 用电信号传输TCP/IP数据 探索协议栈和…

BUUCTF靶场 [reverse]easyre、reverse1、reverse2

工具&#xff1a; DIE&#xff1a;下载&#xff1a;https://download.csdn.net/download/m0_73981089/89334360 IDA&#xff1a;下载&#xff1a;https://hex-rays.com/ida-free/ 新手小白勇闯逆向区&#xff01;&#xff01;&#xff01; [reverse]easyre 首先查壳&#xf…

如何理解HTML语义化

如何理解HTML语义化 HTML语义化&#xff0c;简单来说&#xff0c;就是使用HTML标签来清晰地表达页面内容的结构和意义&#xff0c;而不仅仅是作为布局的容器。它强调使用具有明确含义的HTML标签来描述页面元素&#xff0c;而不是仅仅依赖CSS来实现页面的外观和布局。 理解HTM…

android 权限相关定义解释

1 PID &#xff1a;程序一运行系统就会自动分配给进程一个独一无二的PID&#xff0c;内部线程可以共享 该pid的分配的内存数据 2 UID&#xff1a;User Identifier,UID在linux中就是用户的ID&#xff0c;表明时哪个用户运行了这个程序&#xff0c;主要用于权限的管理。内部共享各…

【oracle003】图片转为字节、base64编码等形式批量插入oracle数据库并查询

1.熟悉、梳理、总结下Oracle相关知识体系 2.欢迎批评指正&#xff0c;跪谢一键三连&#xff01; 资源下载&#xff1a; oci.dll、oraocci11.dll、oraociei11.dll3个资源文件资源下载&#xff1a; Instant Client Setup.exe资源下载&#xff1a; oci.dll、oraocci11.dll、oraoc…

Vue ref访问这些元素或组件的实例

可以在任意DOM元素上使用ref属性&#xff0c;然后在Vue实例中通过this.$refs访问这个DOM元素 1.访问子组件实例&#xff0c;可以调用方法或者获取值 <template><div><input type"text" ref"myInput" /><button click"focusInp…

ubuntu手动替换源后,更新源时提示“仓库.... jammy Release“ 没有Release文件

问题如图所示&#xff0c;由于问题不好定位&#xff0c;我就从替换源&#xff0c;以及解决错误提示这两个步骤&#xff0c;来解决其中可能存在的问题。 1、替换源 这一步骤&#xff0c;网上的资料可以搜到很多&#xff0c;我跟着做了之后&#xff0c;总会冒出来各种各样的小问…

皮影戏艺术品3D沉浸式展馆提供非同一般的趣味体验

引领艺术展示的未来&#xff0c;深圳华锐视点融合多年的web3d项目制作经验&#xff0c;倾力打造3D虚拟艺术品展馆在线编辑平台&#xff0c;为您提供一个超越时空限制的线上艺术展示平台。 一、极致视觉盛宴 我们拥有领先的美术团队&#xff0c;运用先进的web3D开发技术&#xf…

可能是最适合PS的AI插件,设计师大救星!StartAI初体验!不是恰饭

这款软件虽然有一些功能需要完善&#xff0c;比如&#xff1a; 1&#xff1a;生成图片产品海报&#xff0c;会出现图随意出现&#xff0c;跟设计图起冲突&#xff0c;需要PS才可以正常使用它。 2&#xff1a;即使开会员也需要排队生成。 3: 还有&#xff0c;会员没有更加好用的…