Vue3基础(23)___vue3非父子组件之间的通信

简介: 本文介绍了Vue 3中非父子组件间通信的方法,通过创建一个事件集合对象和相应的触发监听函数,实现跨组件的事件传递和监听。

父子传值可以看这个:

Vue3基础(十san)___父子组件通信___props、emit___provide、inject

非父子传值:

写一个事件集合对象,并写模拟触发函数、监听函数:
evnetList:事件集合对象数组;
name:每一个事件的标识;
callbackFun:回调函数;

const eventObj = {
    evnetList: [],
    on(callbackFun, name) {
        this.evnetList.push({
            name,
            callbackFun
        })
    },
    emit(name, data) {
        this.evnetList.forEach(element => {
            if (name === element.name) {
                element.callbackFun(data)
            }
        });
    }
}
export default eventObj

组件A触发事件:

import eventFun from "@/eventFun";
eventFun.emit("changeUsernameP",'我是组件A传递的参数字符串')

组件B:监听事件

import eventFun from "@/eventFun";
import {  onMounted } from "vue";
    onMounted(() => {
      eventFun.on((str) => {
        console.log(str);
        //触发事件后的具体操作...
         ......
      }, "changeUsernameP");
    });
目录
相关文章
|
4月前
|
JavaScript
VUE组件: Vue组件之间是如何通信的?
VUE组件: Vue组件之间是如何通信的?
50 2
|
1月前
|
JavaScript 前端开发 测试技术
VUE——vue中组件之间的通信方式有哪些
VUE——vue中组件之间的通信方式有哪些
28 0
|
4月前
|
存储 JavaScript 前端开发
【Vue】day04-组件通信
【Vue】day04-组件通信
115 1
|
4月前
|
JavaScript API
Vue3中的父子、子父组件通信
Vue3中的父子、子父组件通信
72 0
|
4月前
|
JavaScript API
Vue3父子组件通讯
Vue3父子组件通讯
71 0
|
10月前
|
JavaScript
Vue基础之组件通信(二)
Vue基础之组件通信(二)
33 0
|
JavaScript 索引
【Vue】父子组件通信
【Vue】父子组件通信
【Vue】父子组件通信
|
11月前
|
存储 JavaScript 开发者
【Vue】day04-组件通信(二)
五、什么是props 1.Props 定义 组件上 注册的一些 自定义属性 2.Props 作用 向子组件传递数据 3.特点 可以 传递 任意数量 的prop 可以 传递 任意类型 的prop
55 0
|
存储 JavaScript vr&ar
Vue 组件通信(二)
Vue 组件通信
59 0
VUE3_非父子组件的通信
VUE3_非父子组件的通信
134 0