本示例基于vue3

使用要点:发送数据---- $bus.emit('password',num)

接收数据----在onMounted() 中  $bus.on('password',(data)=>{})

双方定一个交换数据的号码,使用该号码发送或接收数据

1、安装 npm i mitt

npm i mitt

2、在src文件夹下utils文件夹,在其下在新建bus.js文件

import mitt from 'mitt';
const $bus = mitt();
export default $bus;

3、使用

简单示例

新建两个兄弟组件,demoA发送数据,demoB接收数据

demoA

<template><div class="demoA"><h1>demoA</h1><el-button type="primary" @click="increace()">Primary</el-button>{{ num }}</div>
</template><script setup>
import { ref,onMounted  } from 'vue';
import $bus from '../utils/bus.js'const num = ref(1);
const increace = ()=>{setInterval(()=>{num.value++;// 发送数据$bus.emit('event',num)},1000)}
</script>

demoB接收数据

<script setup>
import { ref,unref,onMounted  } from 'vue';
import $bus from '../utils/bus.js'// 接收数据
onMounted(()=>{$bus.on('event',(data)=>{console.log(unref(data),'收到值了');})
})
</script>

踩坑点:

1、点击一次,触发多次,导致多次传递重复的值

解决办法:

在传值的页面加上 ↓

onUnmounted(() => {$bus.off('event');
});

vue3非父子组件间传值相关推荐

  1. 组件间数据交互——父组件向子组件传值( props属性值类型) 子组件向父组件传值-携带参数 || 非父子组件间传值

    父组件向子组件传值 <!DOCTYPE html> <html lang="en"> <head><meta charset=" ...

  2. 初识 Vue(18)---(非父子组件间的传值)

    非父子组件间的传值 常一个应用会以一棵嵌套的组件树的形式来组织:将一个大组件进行拆分 下图这种情况的组件间传值(父子组件间传值) 方法:父组件通过 Props 向子组件传值,子组件通过事件触发向父组件 ...

  3. Vue非父子组件之间传值

    <!DOCTYPE html> <html><head><meta charset="utf-8"><title>非父子 ...

  4. vue调用函数怎么传参_Vue(非)父子组件的传值以及方法调用

    1.vue父组件给子组件传值的方法 子组件中通过props接收传值 props:{ username:{ type:String, default:"" } } 2.vue父组件调 ...

  5. Vue入门八、非父子组件间通讯

    通过Bus总线机制实施非父子组件通讯 1.创建一个空实例(Bus中央事件总线也可以叫中间组件) 2.利用$emit $on 触发和监听事件实现非父子组件的通信 组件之间使用this.$bus.$on传 ...

  6. React组件通信-非父子组件间的通信

    文章目录 React非父子组件通信 小知识点的补充 Context应用场景 Context相关API Context使用流程 React非父子组件通信 在React中, 非父子组件传递是通过一个API ...

  7. 父子组件间传值,父传子,子传父

    父子组件给子组件传值 第一步:爸爸将数据递给儿子,所以我们就需要在子组件绑定父组件的数据 第二步:爸爸都已经将数据给你了,那么你就要礼貌性的伸手去拿,这时我们可以利用props去接爸爸传过来的值 第三 ...

  8. vue父子组件间传值(props)

    先定义一个子组件,在组件中注册props <template><div><div>{{message}}(子组件)</div></div> ...

  9. [vue] 父子组件间传值

    环境说明: vue 3.x + ant-vue 父组件(Album.vue)使用: <template><div><a-button type="primary ...

最新文章

  1. jquery.min.map 404 (Not Found)出错的原因及解决办法
  2. Gradle 修改 Maven 仓库地址(阿里镜像)
  3. kmp算法详解php,php中字符串匹配KMP算法实现例子
  4. getElementById 和 getElementByName的区别
  5. G6 图可视化引擎——核心概念——节点/边/Combo——内置节点——Circle
  6. 变量之--列表初始化和结构化绑定
  7. mysql8和5.7区别_mysql8.0与mysql5.7安全加密小差别
  8. mysql中b树是什么_MySQL优化中B树索引知识点总结
  9. dubbo快速实战(非最佳配置,演示用)
  10. android多媒体框架学习 详解
  11. #pragma warning(disable 4786)
  12. delphi 如何解决假死
  13. 开务正式加入中国信通院数据库应用创新实验室
  14. Nanohttpd 异常 Explicit termination medthod 'end' not called 解决方法
  15. 小米怎么卸载html,小米11内容中心有什么用?怎么关闭和卸载呢
  16. python rgb颜色表_[置顶] RGB颜色查询对照表
  17. MIT 6.824涉及的部分论文翻译
  18. mysql的锁机制,你真的了解吗?进来吧!用图表告诉你
  19. 解读|TARS开源项目发布Go语言版本 1
  20. 性能测试报告,实例讲解

热门文章

  1. 关于蒙古语输入法的研究
  2. 计算机NTFS数据恢复,ntfs数据恢复
  3. 大专学数控技术是计算机一类的吗,大专里的数控专业的内容是什么?
  4. 80后老阿姨转行做前端的学习心得,深情交流!
  5. 计算机技术与软件专业技术资格有哪些?
  6. 30+ 个 DevOps 常用面试题
  7. layui当前表格第一行_layui使用表格渲染获取行数据的例子
  8. sql server 2005数据库
  9. “戏”说设计模式——模板方法模式
  10. 应用案例 | 2009 款长安福特马自达 3 车行驶中发动机突然熄火