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

vue3中mitt.js使用

在vue2中我们通过事件总线eventbus,来实现两个平行组件之间的通信:

bus.js

import Vue from 'vue'
// 创建vue实例
const Bus = new Vue()
export default Bus

在具体的组件中:
A.vue

import Bus from './bus.js'
// 发布一个事件
Bus.$emit('sendData', {name: 'Jack',age: 20})

B.vue

import Bus from './bus.js'
// 订阅一个事件
Bus.on('sendData', (param) => {console.log(param)
})

main.js vue入口文件, 或者直接将bus实例挂在在vue的原型上:

import Vue from 'vue'
const Bus = new Vue()
Vue.prototype.$Bus = Bus
// 直接使用this调用
this.$Bus.on('foo', e => console.log(e))
this.$Bus.emit('foo', {a: b})

那么,在vue3我们也可以通过mitt.js来实现两个平行组件之间的通信
首先安装:npm install --save mitt
在项目src目录下新建一个

mitt.js

文件

import mitt from 'mitt'
// 创建mitt实例
const emitter = mitt()
// 导出
export default emitter

在具体的组件实例中:
A.vue

import emitter from '@/mitt.js'
// 发布一个事件,并传递参数
emitter.emit('sendData', {name: 'David', 'age': 20})

B.vue

import emitter from '@/mitt.js'
// 发布一个事件,并传递参数
emitter.on('sendData', (param) => {console.log(param)
})
// main.js
import emitter from '@/mitt.js'
app.config.globalProperties.$emitter = emitter

那么在vue3 setup 语法中:

const { getCurrentInstance } from 'vue'
const proxy = getCurrentInstance() // 返回vue的实例
proxy.$emitter.on('foo', e => console.log(e)) // 订阅事件
proxy.$emitter.emit('foo', {a: b}) // 发布事件

除此之外,mitt实例还有off(移除订阅), all(订阅所有事件) mittjs github官网 可自行了解

http://www.lryc.cn/news/147232.html

相关文章:

  • Redis 内存淘汰策略详解
  • 初识Redis之分布式
  • 计算机网络-笔记-第三章-数据链路层
  • 【1】openGL glew示例代码分析绘制一个三角形
  • android:新建工程文件介绍
  • 强化历程6-网络系列(2023.8.30)
  • 下载MedShapeNet
  • 根据身高重建队列【贪心算法】
  • 基于Java+SpringBoot+Mybaties-plus+Vue+ElementUI 高校汉服租赁网站的 设计与实现
  • SQL-DQL
  • 手写深拷贝方法
  • 格子游戏——并查集
  • 2023最新Python重点知识万字汇总
  • 【STM32】学习笔记(TIM定时器)-江科大
  • Parallel Context Windows for Large Language Models
  • 怎么消除人声保留背景音乐?试试这几种简单方法
  • 积分游戏小程序模板源码
  • IDEA启动两个Tomcat服务的方式 使用nginx进行反向代理 JMeter测试分布式情况下synchronized锁失效
  • Shell 脚本入门
  • 管理类联考——逻辑——形式逻辑——汇总篇——知识点突破——性质模态
  • 无涯教程-Android - ToggleButton函数
  • unity VS无法进行断点调试
  • Pandas由入门到精通-组合与合并数据
  • Unexpected mutation of “xxxx“ prop
  • 七、基础篇总结
  • 前端面试基础面试题——2
  • docker 搭建rknn转换环境
  • 机器学习:争取被遗忘的权利
  • MATLAB实现AHP层次分析法——以情人节选取礼物为例
  • flutter使用Chanel与原生通信