事件总线


事件总线

1.1 订阅者-发布者模式

简单来说就是一个源发布事件,多端接受并处理

事件总线

1.2 在uniapp中使用事件总线

组件A

data() {
	return {
		numA:10
	};
},
methods:{
	changeBNum(){
		uni.$emit("changeA",this.numA)
	}
}

组件B

methods:{
	numAChange(numA){
		console.log(numA)
	}
},
created() {
	uni.$on("changeA",this.numAChange)
},
beforeDestroy() {
	//第一个参数 清除监听事件的名字,不传清除所有监听
	//第二个参数 监听的函数,不传清除所有函数
	uni.$off("changeA",this.numAChange)
}

1.3 在vue中使用事件总线

创建一个JS文件来定义总线

// event-bus.js
import Vue from 'vue'
export const EventBus = new Vue()

传值

//除调用时使用EventBus实例调用,其他与uniapp一致
EventBus.$emit("changeA",this.numA)