uniapp 页面之间传值 用事件总线 的坑

1,116 阅读1分钟

推荐:www.jianshu.com/p/fde85549e… 问题一:第一次点击没有数据打印

问题二:每一进入打印的次数不一样

问题三:这种方法 记得取消$on


Vue.prototype.bus = new Vue()
// const bus = new Vue()
// Vue.prototype.bus = bus
//在mian.js中
Vue.prototype.bus = new Vue()  //这样我们就实现了全局的事件总线对象

//组件A中,监听事件
this.bus.$on('updata', function(data) {
    console.log(data)  //data就是触发updata事件带过来的数据
})

//组件B中,触发事件
this.bus.$emit('updata', data)  //data就是触发updata事件要带走的数据


//没啥效果
// onUnload(){
// 	 this.bus.$off("schChange");//什么值都没有
// },
		onHide(){
			 this.bus.$off("schChange");
		},

// 实例销毁前 beforeDestroy() { console.log("老师-off"); // 避免重复监听,页面销毁时销毁监听 this.bus.$off("schChange"); },

问题四

组件 与组件之间传值 是拿不到的

	 uni.$emit('update',{msg:'页面更新'})
     
      uni.$on('update',function(data){
			        console.log('监听到事件来自 update ,携带参数 msg 为:' + data.msg);
					this.msg= data.msg
						
			 })