- uni.$emit(eventName,OBJECT)
触发全局的自定义事件,附加参数都会传给监听器回调函数
uni.$emit('update',{msg:'页面更新'})
uni.$on(eventName,callback)
监听全局的自定义事件,事件由 uni.$emit 触发,回调函数会接收事件触发函数的传入参数。
uni.$on('update',function(data){
console.log('监听到事件来自 update ,携带参数 msg 为:' + data.msg);
})
uni.$once(eventName,callback)
监听全局的自定义事件,事件由 uni.$emit 触发,但仅触发一次,在第一次触发之后移除该监听器。
uni.$once('update',function(data){
console.log('监听到事件来自 update ,携带参数 msg 为:' + data.msg);
})
uni.$off([eventName, callback])
移除全局自定义事件监听器。
uni.$off('update', this.add)
总结
子组件:uni.$emit(),抛出一个事件
父组件:uni.$on(),uni.$once()监听,接收事件。
注意及时销毁事件监听
uni.$emit(),uni.$on(),uni.$once(),uni.$offApp 全局级别的,跨任意组件
使用方法
页面 onLoad 里边 uni.$on 注册监听,onUnload 里边 uni.$off 移除
或者一次性的事件,直接使用 uni.$once 监听