EventHub模块提供了事件中心,提供订阅、取消订阅、触发事件的能力。
这里需要注意,该模块接口仅可在Stage模型下使用。且Api>=9
EventHub.on
on(event: string, callback: Function): void;
订阅指定事件。(接收广播)
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
event | string | 是 | 事件名称。 |
callback | Function | 是 | 事件回调,事件触发后调用。 |
EventHub.off
off(event: string, callback?: Function): void;
取消订阅指定事件。(注销广播)
- 传入callback:取消指定的callback对指定事件的订阅,当该事件触发后,将不会回调该callback。
- 不传callback:取消所有callback对指定事件的订阅。
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
event | string | 是 | 事件名称。 |
callback | Function | 否 | 事件回调。如果不传callback,则取消订阅该事件下所有callback。 |
EventHub.emit
emit(event: string, ...args: Object[]): void;
触发指定事件。(发送广播)
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
event | string | 是 | 事件名称。 |
...args | Object[] | 否 | 可变参数,事件触发时,传递给回调函数的参数。 |
示例:
发送广播:
在需要发广播的地方调用
getContext().eventHub.emit('notify','ok')
接收广播:
在需要接收广播的地方调用
aboutToAppear(): void {
//触发事件
getContext().eventHub.on('notify', (message: string) => {
this.message= message
})
}
注销广播
aboutToDisappear(): void {
getContext().eventHub.off('notify')
}