¿Cuál es el ciclo de vida de las suscripciones vue apollo?

8

¿Se da de vue-apollobaja automáticamente la consulta cuando cambia la vista?

Por ejemplo, tengo dos vistas enrutadas a /usersy /orders. /userstiene una suscripción a la usersmesa y /orderstiene una suscripción a la ordersmesa.

Si estuviera en la /userpágina, ¿la ordersuscripción seguiría vigente? En caso afirmativo, ¿cómo podría apagarlo?

zcaudate
fuente

Respuestas:

2

Dado que las consultas de Apollo están vinculadas a su componente, seguirán el ciclo de vida de sus componentes, es decir, si su ruta cambia (se representan diferentes componentes), sus componentes anteriores se eliminarán y, por lo tanto, sus consultas anteriores también se eliminarán.

Esto se soluciona dentro de Vue apollo por este mixin .

Echa un vistazo a la siguiente parte:

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

Esto significa que se une al evento 'destruido' de cada componente de Vue que luego activará la función de destrucción (como se define en la referencia de la API de Vue ):

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

Por lo tanto, este proceso garantiza que sus consultas se destruyan y ya no tengan efecto cuando se destruya su componente.

Espero que esto responda tu pregunta

Sven Hakvoort
fuente
¡Gracias! esto es genial. Agradezco el enlace al código.
zcaudate