使用 Emitter 通知触发事件
一个场景是:登录成功的时候,更新首页试题数据
- 思考:首页如何知道登录成功?
@Watch
触发情况太大不好控制。 - 方案:使用
emitter
可以通知
// 绑定事件
emitter.on("eventId", () => {
console.info('callback');
});
// 触发事件
emitter.emit("eventId", eventData);
实现步骤:
- 在首页 HomePage,绑定事件,触发的时候更新数据
- 在登录成功后,触发事件
1.统一维护事件ID
// 统一维护事件ID
export const LOGIN_EVENT = 'LOGIN_EVENT'
2.在首页绑定更新数据的事件
aboutToAppear(): void {
this.getQuestionTypeList()
// 触发 LOGIN_EVENT 更新数据
emitter.on(LOGIN_EVENT, () => {
this.getQuestionTypeList()
})
}
3.在登录成功之后触发事件
this.loading = false
auth.setUser(user)
//通过事件Id ,触发事件
+ emitter.emit(LOGIN_EVENT)
router.back()
原文地址:https://blog.csdn.net/2301_80345482/article/details/142588440
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!