一、安装依赖mitt

npm install mitt

二、导出模块mitt

在src目录下创建utils文件夹,在该文件夹下创建mybus.ts文件

import mitt from 'mitt';
const mitter = mitt();const bus: any = {$emit: mitter.emit,$on: mitter.on,$off: mitter.off
}
export {bus
}

三、在main.ts 中引入

import { createApp } from 'vue'
import App from './App.vue'
import { bus } from "./utils/mybus"const app = createApp(App)
app.config.globalProperties.$bus = bus

四、在项目中使用

这里要用到proxy,我们可以提前封装一下兼容ts的写法
在src/utils目录下创建useCurrentInstance.ts文件:

import { ComponentInternalInstance, getCurrentInstance } from 'vue'
export default function useCurrentInstance(): any {const { appContext } = getCurrentInstance() as ComponentInternalInstanceconst proxy = appContext.config.globalPropertiesreturn {proxy}
}

然后再需要使用的页面:

import useCurrentInstance from '@/utils/useCurrentInstance'
const { proxy } = useCurrentInstance()//发送
proxy.$bus.$emit('currentRoute', item) //发送当前路由信息//接受proxy.$bus.$on('currentRoute', (item: RouteRecordRaw) => {  //RouteRecordRaw是当前路由对象类型,可从vue-router中取console.log(item, '监听点击menu时传到父组件的数据')})

vue3.0项目中使用mitt进行组件传值相关推荐

  1. TypeScript及TypeScript在vue3.0项目中的基本使用

    一. TypeScript是什么 TypeScript 是一种由微软开发的自由开源的编程语言,主要提供了类型系统和对 ES6的支持.它是JavaScript的一个超集,扩展了JavaScript的 语 ...

  2. 在vue3.0项目中使用tinymce富文本编辑器

    目录 一.安装 二.完整代码 三.事项说明 四.参考文档   之前看了好几篇关于 vue项目中使用 tinymce的文章, import引入大量 tinymce插件, /node_modules/ti ...

  3. Vue3+TS项目中element-plus自动导入组件后,找不到文件

    问题 原因 从报错代码来看,这是一个ts错误,而且是找不到名称 是没有将*.d.ts文件加入到tsconfig.json配置文件中,所以Typescript还不认识它们 解决 //找到项目根目录下 t ...

  4. 创建VUE项目,vue-cli2.0版本和3.0版本的区别,将vue2.0项目升级为vue3.0项目

    创建VUE项目,vue-cli2.0版本和3.0版本的区别,将vue2.0项目升级为vue3.0项目 使用vue-cli2.0版本创建vue项目 创建前的准备 开始创建 创建过程 项目正常创建 使用v ...

  5. 认识vue3.0项目的目录结构

    上一篇笔记 新建一个vue3.0项目 新建项目后,用vscode打开,会看到项目目录,如下图 来看看我们新建的项目里有哪些内容 node_modules npm 加载的项目依赖模块 public 用于 ...

  6. vue3.0项目实战 - ElementUI框架版

    系列文章目录 第一章 论vue3.0和vue2.0区别之编程方式及例子详解 第二章 同一台电脑 实现 vue-cli2和vue-cli3同时并存 及 常见命令 第三章 vue3.0项目实战 - Ele ...

  7. 【Vue】Docker + Nginx 部署 Vue3.0 项目

    Docker + Nginx 部署 Vue3.0 项目 1.用指令 npm run build 打包vue.js项目(该项目是在WebStorm里面新建的Vue空项目). 打包成功后,会生成一个目录d ...

  8. vue3.0项目创建

    vue3.0项目创建 可视化创建(手脚架) 命令行创建 可视化创建(手脚架) 1.win+R打开cmd命令行 2.输入vue ui 打开手脚架 vue ui 3.打开项目管理器,选择创建 4.选择项目 ...

  9. vue项目中element-ui的分页器(组件封装)

    vue项目中element-ui的分页器组件 <template><el-col :span="24" class="toolbar" sty ...

最新文章

  1. 世界坐标系到观察坐标系的变换步骤_《3D数学基础》提炼总结(九)矩阵和线性变换...
  2. 一文帮你了解小型直流有刷电机内部结构
  3. android项目中记录ListView滚动停止位置与设置显示位置
  4. SQL语句更改表所有者
  5. cobol host变量_将Host Cobol批次和Monolith Webapps移动到云和微服务
  6. redis实践的一点思路,关于支付回调
  7. 《盘点那些秀你一脸的秒天秒地算法》(4)
  8. php fizz,php 的 FizzBuzzWhizznbsp;nbsp;
  9. 【微型计算机原理与接口技术】指令概述与标志寄存器
  10. 计算机专业要考哪些证书?这5种证书含金量最高,拿到就是高薪
  11. 合肥盛荣乒乓球俱乐部学习感悟
  12. esb接口测试_ESB产品架构之愚见
  13. 如何俘获一个 IT 男的心,让他成为男友然后变成老公
  14. 日本房地产泡沫 Japan Real Estate Bubble
  15. 分布式事务解决方案汇总:2PC、消息中间件、TCC、状态机+重试+幂等(转)
  16. 市场调研及发展前景分析报告有什么作用
  17. rpm -e卸载mysql_rpm
  18. 25章 SPI—读写串行FLASH
  19. 粤嵌开发板ARM电子相册
  20. 养狗养成小老头?宠物泪痕严重如何护理?

热门文章

  1. linux命令删除sh文件,Linux下面使用命令如何运行.sh文件的两种解决办法 删除windows.old文件夹的解决...
  2. 《青春》——塞缪尔·厄尔曼
  3. Python版超市管理系统源代码,基于django+mysql
  4. Creo Protoolkit index
  5. JAVA毕业设计建筑公司工程信息管理系统计算机源码+lw文档+系统+调试部署+数据库
  6. python爬虫新闻内容_python爬虫:抓取新浪新闻内容(从当前时间到之前某个时间段),并用jieba分词,用于训练自己的分词模型...
  7. 搭建自己的EOS多节点测试主网
  8. linux-cp tap vhost接口
  9. 如何安装win10系统(微PE方式安装,亲测有效)
  10. 机甲大师s1 python_大疆机甲大师S1,可视化模块编程机器人