Was ist der Lebenszyklus von Vue Apollo-Abonnements?

8

Hat vue-apolloautomatisch die Abfrage abmelden , wenn sich die Ansicht ändert?

Zum Beispiel habe ich zwei Ansichten, die an /usersund weitergeleitet werden /orders. /usershat ein Abonnement für die usersTabelle und /ordershat ein Abonnement für die ordersTabelle.

Wenn ich auf der /userSeite wäre, wäre das orderAbonnement noch gültig? Wenn ja, wie könnte ich es ausschalten?

zcaudate
quelle

Antworten:

2

Da Apollo-Abfragen an Ihre Komponente gebunden sind, folgen sie dem Lebenszyklus Ihrer Komponenten. Wenn sich Ihre Route ändert (verschiedene Komponenten werden gerendert), werden Ihre alten Komponenten gelöscht und daher auch Ihre alten Abfragen entfernt.

Dies wird in Vue Apollo durch dieses Mixin erledigt .

Schauen Sie sich den folgenden Teil an:

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

Dies bedeutet, dass es an das 'zerstörte' Ereignis jeder Vue-Komponente gebunden ist, das dann die Zerstörungsfunktion auslöst (wie in der Vue-API-Referenz definiert ):

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

Dieser Prozess stellt also sicher, dass Ihre Abfragen zerstört werden und nicht mehr wirksam sind, wenn Ihre Komponente zerstört wird.

Ich hoffe das beantwortet deine Frage

Sven Hakvoort
quelle
Vielen Dank! das ist toll. Ich schätze den Link zum Code.
zcaudate