首页 > 其他分享 >vue3兄弟组件间的通信 mitt

vue3兄弟组件间的通信 mitt

时间:2024-09-12 10:53:37浏览次数:12  
标签:const bus mitt msg flag vue3 组件

1、安装插件

npm i mitt -s

2、在scr下的utils文件创建mitt.ts文件

/**
 * @author
 * @date 20240912
 * @description Create $bus, 使用方式 $bus.emit/$bus.on
 * */
import mitt from 'mitt'

const $bus = mitt()
export default $bus

两个子组件都引入mitt.js文件

3、子组件cihld2

  <div>
    <h3>兄弟组件间传值</h3>
    <el-button type="primary" @click="sendMsg">发送flag</el-button>
  </div>
import $bus from '../utils/mitt'

const isRightClickVal = ref(false)
const sendMsg = () => {
  console.log('通知兄弟组件')
  $bus.emit('flag', 'isRightClickVal')
}

4、子组件child1 

import $bus from '../utils/mitt'

// 接收兄弟组件child2的信息
let msg = ref('默认')
$bus.on('flag', (val) => {
  msg.value = val
  console.log('msg:',msg.value);
  
})

这样兄弟组件child2触发事件时,就会通过$bus.emit发出通知,兄弟组件child1通过$bus.on监听到,就可以做下一步的逻辑。

注意,当子组件child1调用完$bus.on后,在组件销毁前,销毁监听事件。

onUnmounted(() => {
  console.log('unmounted');
  $bus.off('flag')
})

标签:const,bus,mitt,msg,flag,vue3,组件
From: https://blog.csdn.net/weixin_48420104/article/details/142168775

相关文章

  • vite如何打包vue3插件为JSSDK
    安装vitenpmcreatevite@latest你还可以通过附加的命令行选项直接指定项目名称和你想要使用的模板。例如,要构建一个Vite+Vue+ts项目,运行:#npm7+,需要添加额外的--:npmcreatevite@latestmy-vue-app----templatevue-ts查看create-vite以获取每个模板的更多细......
  • 锋哥写一套前后端分离Python权限系统 基于Django5+DRF+Vue3.2+Element Plus+Jwt 视频
    大家好,我是java1234_小锋老师,最近写了一套【前后端分离Python权限系统基于Django5+DRF+Vue3.2+ElementPlus+Jwt】视频教程,持续更新中,计划月底更新完,感谢支持。视频在线地址:打造前后端分离Python权限系统基于Django5+DRF+Vue3.2+ElementPlus+Jwt视频教程(火爆连载更新中......
  • VUE3新特征
    一、支持组合式api1.1、setup()程序的入口        在Vue3中,setup() 函数是一个新的组件选项,作为使用CompositionAPI的入口点。这个函数是在组件被创建之前被调用,它是 beforeCreate 和 created 生命周期钩子之前被执行的地方。它使得逻辑复用和代码组织变......
  • 10个 Vue3 精华知识点,你知道几个?
    本文不适合Vue初学者,如果你是Vue2迁移者或者是准备面试的话,那么本文肯定很适合你,废话不多说Vue2和Vue3有什么区别对Vue3的了解/Vue3是怎么得更快的?新增了三个组件:Fragment支持多个根节点、Suspense可以在组件渲染之前的等待时间显示指定内容、Teleport......
  • vue3 使用 codemirror 实现yaml文件的在线编辑
    vue3使用codemirror实现yaml文件的在线编辑1.使用情形2.插件下载3.封装yaml编辑器组件4.父组件使用5.js-yaml使用6.备注1.使用情形需要对yaml文件进行在线编辑,并且进行基础格式验证2.插件下载vue-codemirror在线代码编辑器插件js-yaml用于转换jso......
  • 一个简约的uniapp登录界面,基于uniapp+vue3+uview-plus
    uniapp-vue3-template一个简约的uniapp登录界面,基于uniapp+vue3+uview-plus页面主要包括:用户登录,手机验证码登录,用户注册,重置密码等页面登录进去后为空白模板源码在文末界面源码uniapp登录界面源码......
  • Vue3项目文件作用
    在Vue3项目中,文件和文件夹的组织结构对于项目的可维护性、可扩展性和团队协作至关重要。以下是一些Vue3项目中常见文件和文件夹的作用:package.json:项目的元数据文件,包括项目名称、版本、描述、作者、依赖项等。定义了项目的脚本,如启动、构建、测试等命令。public/:存......
  • 【卷起来】VUE3.0教程-06-组件详解
    ============各位看官,点波关注和赞吧===========组件允许我们将UI划分为独立的、可重用的部分,并且可以对每个部分进行单独的思考。在实际应用中,组件常常被组织成层层嵌套的树状结构:这和我们嵌套HTML元素的方式类似,Vue实现了自己的组件模型,使我们可以在每个组件内封装......
  • asp.netcore8 + vue3 + mysql 自用记账项目(四)项目部署
    一、生成后台api服务 1、在系统生成的Dockerfile基础上,添加时区标识FROMmcr.microsoft.com/dotnet/aspnet:8.0ASbaseENVTZAsia/ShanghaiRUNln-snf/usr/share/zoneinfo/$TZ/etc/localtime&&echo$TZ>/etc/timezoneWORKDIR/appEXPOSE80EXPOSE443FROMmcr.......
  • asp.netcore8 + vue3 + mysql 自用记账项目(二)环境搭建
    一、vue1、node.js安装安装node.js的攻略网上有很多,这里就不多做赘述,安装完成后,验证是否正常然后就是配置淘宝镜像加速,配置环境变量等操作。2、vue安装上面安装完node.js之后,就可以安装vue环境了,网上同样很多,需要注意的是,vue安装完成了,最好将webpack模版、vue-cli、vue-rout......