Vue3:mitt实现组件通信
目录
一.性质
1.轻量级
2.单例
3.异步
4.事件绑定与解绑
二.作用
1.组件间通信
2.解耦
3.状态管理
4.事件的集中处理
三.使用
1.安装`mitt`
2.引入mitt;调用mitt;暴露mitt
3.组件1
4.组件2
四.代码
1.组件1
2.组件2
五.效果
一.性质
1.轻量级
mitt
是一个非常轻量级的库,其主要目标是提供一个简单、高效、易于使用的事件总线。
2.单例
mitt
通常被实例化为一个全局对象,这样可以确保在整个应用中只有一个实例,便于组件间共享。
3.异步
mitt
支持异步事件处理,这意味着你可以注册事件处理器,当事件触发时,处理器可以异步执行。
4.事件绑定与解绑
允许组件注册事件处理器并随时解绑它们,以控制事件处理的生命周期。
二.作用
1.组件间通信
在Vue中,组件间通信通常通过props和事件实现。然而,当组件间的通信关系复杂,或者需要在多个组件间共享状态时,使用事件总线可以提供更灵活的解决方案。
2.解耦
通过事件总线,组件可以被解耦,即组件不需要直接引用其他组件,而是通过事件总线来传递信息,这有助于提高组件的复用性和可维护性。
3.状态管理
在大型应用中,事件总线可以作为状态管理的工具,帮助管理全局状态,尤其是当应用使用了如Vuex这样的状态管理库时,事件总线可以作为其补充,处理特定的事件流。
4.事件的集中处理
在某些场景下,可能需要对多个组件的事件进行集中处理,比如更新全局状态、触发全局操作等,事件总线提供了一个集中处理这些事件的中心点。
三.使用
1.安装`mitt`
控制台输入npm i mitt
2.引入mitt;调用mitt;暴露mitt
3.组件1
1.创建一个Vue组件,显示子组件1的标题、游戏机名称和收到的信息。
2.使用响应式变量game
和toy
来存储游戏机名称和接收到的信息。
3.通过监听send-toy
事件来接收外部发送的信息,并将接收到的信息更新到toy
变量中,从而在界面上显示出来。
4.组件2
响应式变量toy
存储玩具名称,并使用自定义的emitter
进行事件的触发和传递。
四.代码
1.组件1
<template><div class="father"><h4>子组件1</h4><h4>游戏机:{{ game }}</h4><h4>收到的信息:{{ toy }}</h4></div>
</template><script setup lang="ts" name="father">import { ref } from "vue";import emitter from "@/utils/emitter";let game = ref('ps5')let toy = ref('')// 绑定事件emitter.on('send-toy',(value:any)=>{console.log('send-toy事件被触发',value)toy.value = value})
</script><style>
.father{background-color: skyblue;
}
h4{margin-left: 20px;font-size: 20px;
}
button{width: 120px;height: 40px;font-size: 20px;margin-left: 20px;
}</style>
2.组件2
<template><div class="son"><h4>子组件2</h4><h4>玩具:{{ toy }}</h4><button @click="emitter.emit('send-toy',toy)">玩具</button></div>
</template><script setup lang="ts" name="son">import { ref } from "vue";import emitter from "@/utils/emitter";let toy = ref('变形金刚')</script><style>
.son{background-color: skyblue;
}h4{margin-left: 20px;font-size: 20px;
}
button{width: 120px;height: 40px;font-size: 20px;margin-left: 20px;
}</style>
五.效果
相关文章:

Vue3:mitt实现组件通信
目录 一.性质 1.轻量级 2.单例 3.异步 4.事件绑定与解绑 二.作用 1.组件间通信 2.解耦 3.状态管理 4.事件的集中处理 三.使用 1.安装mitt 2.引入mitt;调用mitt;暴露mitt 3.组件1 4.组件2 四.代码 1.组件1 2.组件2 五.效果 一.性质 1…...
一个有个性的使用工具thefuck@Ubuntu
这个工具名字可能有些粗鄙,不过真的有让人眼前一亮的功能。 当用户输入错误的命令时,TheFuck会根据上下文自动推测并给出正确的命令建议。 安装 apt update apt search thefuck apt install thefuck 使用 在错误命令下面直接输入thefuck即可。 不过…...
【PyQt5】PyQt5桌面APP开发学习
跟我学习PyQt5之每天一更 1、兴趣是最好的坚持2、object基类3、QWidget子类 等我不更新了,就说明我学习完成了,有想学而又不会的可以催更留言! 1、兴趣是最好的坚持 看视频看书不如先来一个游戏玩一玩,学习由对他有兴趣开始 2024…...

JdbcTemplate常用方法一览AG网页参数绑定与数据寻址实操
JdbcTemplate是Spring框架中的一个重要组件,主要用于简化JDBC数据库操作。它提供了许多常用的方法,如查询、插入、更新、删除等。本文将介绍JdbcTemplate的常用方法及其使用方式,以及参数绑定和删除数据的方法。 一、JdbcTemplate常用方法 查…...

向日葵好用吗?4款稳定的远程控制软件推荐。
远程控制技术现在已经被应用于很多个领域,像企业办公,远程协助,智能家居,工业控制等等。我们常常会用到的时前两种。而实现远程控制的方式也有多种,但是最方便高效的还是使用第三方软件。我最常使用的是向日葵…...

【开源大模型生态9】百度的文心大模型
这张图展示了百度千帆大模型平台的功能架构及其与BML-AI开发平台和百度百舸AI异构计算平台的关系。以下是各个模块的解释: 模型广场: 通用大模型:提供基础的自然语言处理能力。行业大模型:针对不同行业的定制化模型。大模型工具链…...

CSS的三种基本选择器
使用CSS控制网页格式有行内法,内嵌式,链接式,导入式等方法 这里将采用内嵌式的方法书写 内嵌法就是通过<style>标记将样式定义在HTML的文件头部中 1.标记选择器 标记选择器特点:定义了标记选择器之后,网页中…...

排序学习笔记
目录 排序排序的相关概念冒泡排序插入排序选择排序堆排序快速排序归并排序 内排序和外排序非比较排序稳定性稳定性 完 排序 排序的相关概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起…...
【nginx】缓存配置文件
http {# ... 其他配置 ...# 缓存目录配置proxy_cache_path /var/cache/nginx/proxy_cache levels1:2 keys_zonemy_cache:10m inactive60m use_temp_pathoff;# ... 其他配置 ... }server {listen 80;server_name www.example.com;location / {root /var/www/example.com/public;…...

如何使用 maxwell 同步到 redis?
文章目录 1、MaxwellListener2、MxwObject1. 使用Maxwell捕获MySQL变更2. 将Maxwell的输出连接到消息系统3. 从消息系统读取数据并同步到Redis注意事项 1、MaxwellListener package com.atguigu.tingshu.album.listener;import com.alibaba.fastjson.JSON; import org.apache.…...
C++ 元编程
目录 C 元编程1. 术语2. 元函数1. 数值元函数示例:阶乘计算 2. 类型元函数示例:类型选择 3. 混合编程1. 常规的计算点积范例2. 混合元编程计算点积 4. typelist实现设计和基本操作接口(算法)完整代码 5. tuple 实现基础知识1. 左值…...

运行npm install 时,卡在sill idealTree buildDeps没有反应
一直停留在sill idealTree buildDeps 解决方法 npm config set registry https://registry.npm.taobao.org 配置后用下面命令看是否配置成功 npm config get registry 如果配置还不好使 就执行下行的ssl npm set strict-ssl false 然后执行 npm install 成功执行...
swc 编译 es6为commonjs
如果直接写es6后运行node index.js 报错:SyntaxError: Cannot use import statement outside a module js 我们这里使用swc来将es6编译成CommonJS。 以后可以作为一个简单的框架模版使用。 安装 pnpm add swc/cli swc/core 配置.swcrc {"$schema": &q…...
#nginx配置案例
示例配置 1:反向代理 负载均衡 缓存控制 http {# 定义后端服务器池,用于负载均衡upstream backend_servers {server backend1.example.com weight3; # 权重为3server backend2.example.com weight1; # 权重为1server backend3.example.com backup; …...

STM32—I2C通信外设
1.I2C外设简介 STM32内部集成了硬件I2C收发电路,可以由硬件自动执行时钟生成、起始终止条件生成、应答位收发、数据收发等功能,减轻CPU的负担支持多主机模型(可变多主机)支持7位/10位地址模式(11110......)支持不同的通…...

Java-测试-Mockito 入门篇
之前很长一段时间我都认为测试就是使用SpringBootTest类似下面的写法: SpringBootTest class SysAuthServiceTest {AutowiredSysRoleAuthMapper sysRoleAuthMapper;Testpublic void test() {QueryWrapper<SysRoleAuth> queryWrapper new QueryWrapper<&g…...

【jupyter notebook】环境部署及pycharm连接虚拟机和本地两种方式
Python数据处理分析简介 Python作为当下最为流行的编程语言之一 可以独立完成数据分析的各种任务数据分析领域里有海量开源库机器学习/深度学习领域最热门的编程语言在爬虫,Web开发等领域均有应用 与Excel,PowerBI,Tableau等软件比较 Excel有…...

TypeScript异常处理
1.异常的概念 程序运行中意外发生的情况就成为异常 例子: //除法运算function chu(num1:number,num2:number){if(num20){//throw 抛出异常throw new Error(除数不能为零)}let num:numbernum1/num2console.log(num) }//程序出现异常后会停止运行// 捕获异常try{ /…...
go的学习笔记
中文标准库文档:https://studygolang.com/pkgdoc 第一段代码 所有代码的主文件都是main.go,下面的代码直接在项目里面创建main.go运行 package main // 声明文件所在的包,每个go文件必须有归属的包import "fmt" // 引入程序需要的包,为了使用包下的函数,比如Print…...
卷积和转置卷积的输出尺寸计算
卷积和转置卷积的输出尺寸计算 卷积 h是输出的高,h是输入的高,k_h是卷积核的高 w类似stride1 h h - k_h padding*2 1通用公式 stride1就是上面的公式 h (h - k_w 2*padding stride)//stride 一些常见的卷积 高宽不变的卷积:kernel…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...