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

第三十三:6.3. 【mitt】 任意组件通讯

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

// 引入mitt 
import mitt from "mitt";

// 创建emitter
const emitter = mitt()

/*
  // 绑定事件
  emitter.on('abc',(value)=>{
    console.log('abc事件被触发',value)
  })
  emitter.on('xyz',(value)=>{
    console.log('xyz事件被触发',value)
  })

  setInterval(() => {
    // 触发事件
    emitter.emit('abc',666)
    emitter.emit('xyz',777)
  }, 1000);

  setTimeout(() => {
    // 清理事件
    emitter.all.clear()
  }, 3000); 
*/

// 创建并暴露mitt
export default emitter

接收数据的组件中:绑定事件、同时在销毁前解绑事件:

import emitter from "@/utils/emitter";
import { onUnmounted } from "vue";
​
// 绑定事件
emitter.on('send-toy',(value)=>{
  console.log('send-toy事件被触发',value)
})
​
onUnmounted(()=>{
  // 解绑事件
  emitter.off('send-toy')
})

【第三步】:提供数据的组件,在合适的时候触发事件

import emitter from "@/utils/emitter";
​
function sendToy(){
  // 触发事件
  emitter.emit('send-toy',toy.value)
}

注意这个重要的内置关系,总线依赖着这个内置关系

第三:emitter:

解除事件:

相关文章:

  • 第二章、python常用数据结构(2.2.1-2.3.2)------容器类型与容器类型的关系、数据类型与数据结构的关系
  • (动态规划 最长递增的子序列)leetcode 300
  • vue3+TS使用i18n.global.locale,页面要刷新时才更新
  • SQL Server Management Studio的使用
  • 运维Splunk面试题及参考答案
  • (上)基于机器学习的图像识别——遥感图像分类(LeNet-5;AlexNet;VGGNet;GoogLeNet;ResNet)
  • 局域网自动识别机器名和MAC并生成文件的命令
  • 自然语言处理NLP入门 -- 第九节NLP 实战项目 1:情感分析系统
  • 学习dify第二天-web前篇
  • 【C++】防止机械/移动硬盘休眠 - NoSleepHD
  • start DL from stratch (2)!!!
  • 【AI+智造】南京江北新区制造业特点分析及智慧设备运维诊断开发方案
  • RocketMQ的运行架构
  • [特殊字符]【CVPR2024新突破】Logit标准化:知识蒸馏中的自适应温度革命[特殊字符]
  • 中科大 计算机网络原理 第一章 1.6分组延迟、丢失和吞吐量 笔记
  • 如何把网络ip改为动态:全面指南
  • 一个基于C# Winform开源免费的通用快速开发框架,内置完整的权限架构!
  • python爬虫报错信息解决方法
  • C++22——哈希
  • 基于Springboot博物馆文博资源库系统【附源码】