vue阿波罗订阅的生命周期是什么?

时间:2020-02-17 02:08:51

标签: vue.js apollo vue-apollo

视图更改时,vue-apollo是否自动取消订阅查询?

例如,我有两个视图分别路由到/users/orders/users订阅了users表,/orders订阅了orders表。

如果我在/user页上,order订阅是否仍然有效?如果可以,我如何将其关闭?

1 个答案:

答案 0 :(得分:2)

由于Apollo查询绑定到您的组件,因此它们将遵循组件的生命周期,即,如果您的路线发生更改(呈现了不同的组件),则将删除您的旧组件,因此也将删除您的旧查询。

this mixin在Vue apollo内部对此进行了处理。

看看以下部分:

export function installMixin (Vue, vueVersion) {
  Vue.mixin({
    // Other irrelevant code for this question
    destroyed: destroy,
  })
}

这意味着它绑定到每个Vue组件的“ destroyed”事件,然后将触发destroy函数(由Vue API reference定义):

function destroy () {
  if (this.$_apollo) {
    this.$_apollo.destroy()
  }
}

因此,此过程可确保您的查询被销毁,并且在销毁组件时不再有效。

我希望这能回答您的问题