自学内容网 自学内容网

使用 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)!