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

组件通信-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>

相关文章:

  • 【云备份】配置文件加载模块
  • 中小企业MES系统需求文档
  • 创新老年综合评估实训室建设方案,规范评估流程
  • JSON与字典的区别及示例
  • (六——下)RestAPI 毛子(Http resilience/Refit/游标分页)
  • Linux52 运行百度网盘 解决故障无法访问repo nosandbox 未解决:疑似libstdc++版本低导致无法运行baidu网盘
  • Arduino逻辑控制详细解答,一点自己的想法记录
  • Shell 脚本基础
  • 文献阅读篇#7:5月一区好文阅读,BFA-YOLO,用于建筑信息建模!(下)
  • 【记录】新Ubuntu20配置voxelmap的环境安装
  • w317汽车维修预约服务系统设计与实现
  • ThreadLocal理解
  • SALOME源码分析: 命令系统
  • Android WebView加载h5打开麦克风与摄像头的权限问题
  • 学习记录:DAY22
  • 仙盟创梦IDE-智能编程,编程自动备份+编程审计
  • OnlyOffice Document Server 源码调试指南-ARM和x86双模式安装支持
  • 软连接和硬连接【Linux操作系统】
  • iO(不可区分混淆)是Web3隐私的圣杯?
  • AntSK:基于大模型的一体化AI知识库解决方案深度解析
  • 塞尔维亚总统因突发健康问题,中断对美国的正式访问并回国
  • 陈逸飞《黄河颂》人物造型与借鉴影像意义
  • 旅游特种兵们,这个五一“躲进”书吧
  • 乌美矿产协议文本公布,明确乌收益及协议优先级
  • 杭州挂牌临平区两宗住宅用地,起始总价约11.02亿元
  • 航海王亚洲巡展、工厂店直销……上海多区推出“五五购物节”活动