Qual é o ciclo de vida das assinaturas do vue apollo?

8

Cancela vue-apolloa inscrição automaticamente na consulta quando a Visualização é alterada?

Por exemplo, tenho duas visualizações roteadas para /userse /orders. /userspossui uma assinatura na userstabela e /ordersuma assinatura na orderstabela.

Se eu estivesse na /userpágina, a orderassinatura ainda estaria em vigor? Se sim, como eu poderia desligá-lo?

zcaudate
fonte

Respostas:

2

Como as consultas Apollo estão vinculadas ao seu componente, elas seguirão o ciclo de vida de seus componentes, ou seja, se sua rota for alterada (diferentes componentes são renderizados), seus componentes antigos serão excluídos e, portanto, suas consultas antigas também serão removidas.

Isso é tratado dentro do Vue Apollo por este mixin .

Dê uma olhada na seguinte parte:

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

Isso significa que ele se liga ao evento 'destroyed' de cada componente do Vue, que acionará a função de destruição (conforme definido pela referência da API do Vue ):

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

Portanto, esse processo garante que suas consultas sejam destruídas e não tenham mais efeito quando seu componente for destruído.

Espero que isso responda sua pergunta

Sven Hakvoort
fonte
obrigado! isso é ótimo. Agradeço o link para o código.
zcaudate 27/02