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?

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


obrigado! isso é ótimo. Agradeço o link para o código.
zcaudate 27/02
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.