Vue 用 event bus 解决非父子组件的数据传递

本文介绍了一种在Vue项目中不使用Vuex实现非父子组件间数据传递的方法。通过创建一个Vue实例作为通信媒介,利用$on和$emit实现事件监听与触发。

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

开始

  在不使用vuex的情况下,实现非父子组件的数据传递。

  当然你项目中使用着vuex就不必要再用event bus了。

 

使用方法

  我们需要有一个 Vue 实例来充当通信媒介的作用

  创建一个 src/bus.js

import Vue from 'vue'
export default new Vue()

  在组件A中使用 $on(eventName) 监听事件

import Bus from 'src/bus'  // 引入bus.js文件

export default {
  data () {
    return {
      title: ''
    }
  },
  created () {
// $on Bus.$on(
'setTitle', text => { this.title = text; }); } }

  在组件B中使用 $emit(eventName) 触发事件

import Bus from 'src/bus'

export default {
  methods:{
    emitTitle () {
      Bus.$emit('setTitle', '我的标题')
    }
  }  
}

总结

  这个方法只是利用vue实例实现通讯。用$on、$emit来监听和触发事件。

转载于:https://www.cnblogs.com/ChivanTam/p/7374664.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值