【问题标题】:What is the lifecycle of vue apollo subscriptions?vue apollo 订阅的生命周期是什么?
【发布时间】:2020-05-31 22:48:36
【问题描述】:

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

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

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

【问题讨论】:

    标签: vue.js apollo vue-apollo


    【解决方案1】:

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

    这是由this mixin 在 Vue apollo 中处理的。

    看看下面的部分:

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

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

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

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

    我希望这能回答你的问题

    【讨论】:

    • 谢谢!这很棒。我感谢代码的链接。
    猜你喜欢
    • 2019-01-15
    • 2019-03-10
    • 1970-01-01
    • 2020-07-26
    • 2014-02-01
    • 1970-01-01
    • 2022-12-14
    • 1970-01-01
    • 2020-05-28
    相关资源
    最近更新 更多