个人设置(一)-VUE基础-组件传值(非父子) —eventbus-只提供vue实例 & 谁需要数据 谁用eventBus绑定事件 & 谁传递数据 谁用eventBus触发事件

本文深入解析VUE中组件间通信的多种方式,重点介绍非父子组件间的传值技巧,包括事件总线(eventBus)的创建、绑定及触发过程。通过具体代码示例,展示如何实现跨组件的数据传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

01-VUE基础-组件传值(非父子) 理论分析——>代码实现

  • 父传子
  • 子传父
  • 非父子
    • 在A组件内绑定一个事件(C.$on(‘事件名称’,函数(参数){})),当事件被触发,接收传参。
    • 在B组件内触发这个事件(C.$emit(‘事件名称’,‘数据’)),触发这个事件,传参即可。
    • 这个事件,由C绑定,由C触发。(术语:事件总线eventBus-控制了组件传值需要使用的所有事件绑定和触发)

在这里插入图片描述

对应的实现:

数据由B组件——>A组件

src/components/eventBus.js eventbus-只提供vue实例即可 第一步:有实例 -创建实例,作为模块

// 提供C  事件总线 eventBus(负责任何组件之间的传值需要的  事件绑定和事件触发)
import Vue from 'vue'
export default new Vue()

src/components/com-a.vue 谁需要数据 谁用eventBus绑定事件 第二步:绑事件

//第一步:导eventBus包
import eventBus from './eventBus'
//第二步:配置项中绑定事件,别人触发
export default {
  data(){
      return{
          msg:'组件内部数据COM-A'
      }
  }
  created () {
    eventBus.$on('b2a', (data) => {
      // 得到了数据 data ,给msg赋值
        this.msg = data
    })
  }
}

src/components/com-b.vue 谁传递数据 谁用eventBus触发事件 第三步:触发事件

//第一步:导eventBus包
import eventBus from './eventBus'
//第二步:配置项中绑定事件,触发点击事件
export default {
    data(){
        return{
            msg:'COM-B的数据'
        }
    }
  methods: {
 //   fn1(){
 //       //提交数据给父组件
 //       this.$emit('abc',this.msg)
 //   },
    fn2 () {
      // 传递数据给A组件
     // eventBus.$emit('b2a', '数据')
         eventBus.$emit('b2a', this.msg)
    }
  }
}

传值方式

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值