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

组件通信-mitt

mitt:与消息订阅与发布(pubsub)功能类似,可以实现任意组件间通信

第一步:安装mitt

npm i mitt

第二步:新建文件:src\utils\emitter.ts
// 引入mitt
import mitt from "mitt"; //调用mitt得到emitter,emitter能:绑定事件、触发事件、解绑事件
const emitter= mitt()//暴露/导出
export default emitter;
第三步:接收数据的组件中:绑定事件、同时在销毁前解绑事件:
<script setup lang="ts">
import { ref,onUnmounted } from 'vue'
import emitter from '@/utils/emitter';
const toy = ref('奥特曼')
const phone = ref('')// 绑定send-phone事件监听  
emitter.on('send-phone', (value: any) => {  phone.value = value // 当接收到'send-phone'事件时,将传递的值赋值给phone  console.log(value); // 输出接收到的值  
})  // 在组件卸载时解除事件监听  
onUnmounted(() => {  emitter.off('send-phone') // 移除名为'send-phone'的事件监听  
})  
</script><template><div class="child"><h1>子组件2</h1><h3>子组件2的玩具:{{ toy }}</h3><h3>组件1给的手机:{{ phone }}</h3></div></template>
 第四步:提供数据的组件,在合适的时候触发事件
<script setup lang="ts">
import { ref } from 'vue'
import emitter from '@/utils/emitter';
const phone = ref('oppo')
</script><template><div class="child"><h1>子组件1</h1><h4>子组件1的手机:{{ phone }}</h4><!-- 点击按钮时,通过事件总线发送名为'send-phone'的事件,并传递phone变量作为参数 -->  <button @click="emitter.emit('send-phone', phone)">测试</button></div></template>

http://www.xdnf.cn/news/3633.html

相关文章:

  • 数据结构之哈夫曼树
  • 【Hive入门】Hive性能调优之Join优化:深入解析MapJoin与Sort-Merge Join策略
  • 安装深度环境anaconda+cuda+cudnn+pycharm+qt+MVS
  • python 桌面程序开发简述及示例
  • 玩转Docker(一):基本概念
  • 觅知解析计费系统重构版在线支付卡密充值多解析接口免授权无后门源码扶风二开
  • Git 完整教程:初学者分步指南
  • 网工_IP协议
  • 前端面经-VUE3篇--vue3基础知识(一)插值表达式、ref、reactive
  • 2000-2020年全国各地级市资本存量测算数据(以2000年为基期)(含原始数据+计算过程+结果)
  • ASP.NET MVC​ 入门与提高指南七
  • 性能测试工具篇
  • 龙虎榜——20250430
  • 雅思写作--70个高频表达
  • CloudCompare中CCCoreLib模块内容
  • 数字智慧方案5981丨智慧农业解决方案(55页PPT)(文末有下载方式)
  • 机箱结构的EMC设计
  • 数字智慧方案6157丨智慧医疗建设方案(85页PPT)(文末有下载方式)
  • 协议(消息)配置
  • 【数据结构与算法】位图 布隆过滤器 海量数据问题处理 哈希切分
  • AdaBoost算法详解:原理、实现与应用指南
  • C++异常处理
  • terraform 删除资源前先校验资源是否存在关联资源
  • 数字智慧方案6172丨智慧医院扩建信息化整体规划方案(60页PPT)(文末有下载方式)
  • LiteOS与SLE透传实战案例
  • 数据结构-树(二叉树、红黑、B、B+等)
  • kes监控组件安装
  • 传感器的精度,灵敏度等概念介绍
  • MySQL 高可用架构设计:电商系统的实践与优化
  • 完美中国制度流程体系建设(70页PPT)(文末有下载方式)