我们开发中会遇到很多页面间通讯场景,如:
- vue 与 nvue,nvue 与 vue 间的通讯
- tabbar 页面之间的通讯
- 父页面与多级子页面间的通讯
uni.$emit() 触发事件
// 登陆页面
uni.$emit('login', {
avatarUrl: 'https://img-cdn-qiniu.dcloud.net.cn/uploads/nav_menu/10.jpg',
token: 'user123456',
userName: 'unier',
login: true
});
uni.$on() 监听事件
// 我的页面
1. onLoad(){
// 监听事件
uni.$on('login',(usnerinfo)=>{
this.usnerinfo = usnerinfo;
})
},
2. onUnload() {
// 移除监听事件
uni.$off('login');
},
3. methods: {
handleTextClickFn(ind,type) {
uni.$on('login', (usnerinfo) => {
console.log(usnerinfo, ind, type)
})
}
}
本质上就是一个页面发生事件触发通知另一个面我发生了变化,你需要处理一下。