uniapp非父子组件传值

2,711 阅读1分钟

和vue不同的是,vue因为数据直接传递是单向的,所以会用到一个数据中转站eventHub来实现,我们在项目中应用的时候,会把他注册为全局方法,而uniapp里面的uni.emit和uni.on方法,已经被处理成了全局方法,看官方接收:

 uni.$emit触发全局的自定事件。附加参数都会传给监听器回调。
 uni.$on监听全局的自定义事件。事件可以由 uni.$emit 触发,回调函数会接收所有传入事件触发函数的额外参数。
 

所以我们在使用的时候可以直接这样用:

 uni.$emit('selectAccount',{accountInfo:JSON.parse(JSON.stringify(accountInfo))})
 uni.$on('selectAccount',(data)=>{
    this.name=data.accountInfo.name;
})