其中eventName为事件名,OBJECT为触发事件附加参数
示例代码以下:微信
uni.$emit('update',{msg:'页面更新'})
监听全局自定义事件,事件由uni.$emit()触发,回调函数会接收全部传入的数。
eventName为事件名,callback为事件的回调函数。
示例代码以下:函数
uni.$on('update',function(data){ console.log('监听到事件来自 update ,携带参数 msg 为:' + data.msg); })
实际开发中对于触发页面的动态更新将很是有效。
例如移动端项目经过本身编写的组件替代tabbar进行tabar跳转,恰逢这时某个页面如微信支付成功,须要返回这个tabbar页面,你会发现他不会像普通uni页面(onshow生命周期)同样会动态刷新,这就很影响用户实际体验。所以这个方法就颇有效,只须要在组件中写入uni.$emit('update',{msg:'页面更新'})而后在页面使用uni.$on('update',function(data){ console.log('监听到事件来自 update ,携带参数 msg 为:' + data.msg); })接收,将函数写入便可。实际应用例子以下:
组件中:微信支付
onShow() { switch (this.Tab){ case 'demo': uni.$emit('update',{msg:'页面更新'}); break; } },
demo页面中:this
created() { uni.$on('update', (res) => { this.list() console.log(res, '更新'); }) },
组件中触发事件,demo页面监听事件,便可实现刷新!code