数据总线bus实现兄弟组件之间的通信

本文介绍了如何使用Vue.js创建一个bus.js模块,通过$emit和$on方法实现在Abro和Bbro组件之间的数据传递。通过实例展示了如何在组件间传递参数,并在组件挂载和销毁时进行事件监听和解绑,以避免内存泄漏。
摘要由CSDN通过智能技术生成

定义一个数据总线bus.js,Abro组件给Bbro组件传值

bus.js

import Vue from 'vue'

const busData = new Vue();

export default busData

Abro.vue

import busData from './bus'
export default {
	data(){return { title:'this is title!' } }
	methods:{
		onClick(){ // 定义一个点击事件进行传值
			// 每一个vue实例 他都会有一个$emit方法,同时他也会有负责监听的一个$on方法
			busData.$emit('addItem', this.title)
		}
	}
}

Bbro.vue

import busData from './bus'
export default {
	data(){return { title:'this is title!' } }
	mounted(){
		// 在vue组件进行挂在的时候,去监听Abro.vue中定义的addItem方法
		// 这个事件一旦触发的话,我们就去执行一个isComing的方法函数
		busData.$on('addItem', this.isComging)
	},
	methods:{
		isComging(title){ // title是Abro.vue传递过来的参数
			console.log('title是Abro传过来的值')
		}
	},
	beforeDestroy(){
		// 组件挂在的时候进行监听,在组件销毁的时候进行一个解绑,这样就不会造成潜在内存泄漏的问题。
		busData.$off('addItem', this.isComging)
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值