vue apolloサブスクリプションのライフサイクルは何ですか?


8

vue-apolloビューが変化したときに自動的にクエリを解除?

たとえば、とにルーティングされる2つのビューが/usersあり/ordersます。テーブル/usersへのサブスクリプションとusersテーブルへ/ordersのサブスクリプションがありordersます。

私は上にあった場合は/userページ、でしょうorderサブスクリプションがまだ有効であること?はいの場合、どうすればオフにできますか?

回答:


2

Apolloクエリはコンポーネントにバインドされているため、コンポーネントのライフサイクルに従います。つまり、ルートが変更された場合(異なるコンポーネントがレンダリングされた場合)、古いコンポーネントが削除され、古いクエリも削除されます。

これは、このミックスインによってVue apollo内で処理されます。

次の部分を見てください。

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

これは、各Vueコンポーネントの「破棄された」イベントにバインドして、(Vue APIリファレンスで定義されているように)destroy関数をトリガーすることを意味します

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

したがって、このプロセスにより、クエリが破棄され、コンポーネントが破棄されたときに無効になります。

これがあなたの質問に答えることを願っています


ありがとう!これは素晴らしい。コードへのリンクに感謝します。
zcaudate
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.