Skip to content

Opções: Ciclo de Vida

Consulte também

Para uso partilhado dos gatilhos do ciclo de vida, consulte o Guia - Gatilhos do Ciclo de Vida.

beforeCreate

Chamada quando a instância for inicializada.

  • Tipo

    ts
    interface ComponentOptions {
      beforeCreate?(this: ComponentPublicInstance): void
    }
  • Detalhes

    Chamada imediatamente quando a instância for inicializada e as propriedades forem resolvidas.

    Depois as propriedades serão definidas como propriedades reativas e o estado tais como data() ou computed serão configurados.

    Nota que o gatilho setup() da API de Composição é chamado antes de quaisquer gatilhos da API de Opções, até mesmo antes de beforeCreate().

created

Chamada depois da instância ter terminado de processar todas as opções relacionadas ao estado.

  • Tipo

    ts
    interface ComponentOptions {
      created?(this: ComponentPublicInstance): void
    }
  • Detalhes

    Quando este gatilho é chamado, os seguintes foram configurados: dados reativos, propriedades computadas, métodos, e observadores. No entanto, a fase de montagem ainda não foi começada, e a propriedade $el ainda não estará disponível.

beforeMount

Chamada bem antes do componente ser montado.

  • Tipo

    ts
    interface ComponentOptions {
      beforeMount?(this: ComponentPublicInstance): void
    }
  • Detalhes

    Quando este gatilho é chamado, o componente terminou de configurar o seu estado reativo, mas ainda nenhum dos nós de DOM foi criado. Está prestes a executar o seu efeito de interpretação de DOM pela primeira vez.

    Este gatilho não é chamado durante a interpretação no lado do servidor.

mounted

Chamado depois do componente ter sido montado.

  • Tipo

    ts
    interface ComponentOptions {
      mounted?(this: ComponentPublicInstance): void
    }
  • Detalhes

    Um componente é considerado montado depois:

    • De todos os seus componentes filhos síncronos terem sido montados (isto não inclui componentes assíncronos ou componentes dentro das árvores do <Suspense>).

    • Da sua própria árvore do DOM ter sido criada e inserida no contentor pai. Nota que isto apenas garante que a árvore do DOM do componente está no documento se o contentor da raiz da aplicação também estiver no documento.

    Este gatilho é normalmente usado para executar os efeitos colaterais que precisam do acesso ao DOM interpretado do componente, ou para limitar o código relacionado ao DOM para o cliente numa aplicação interpretada no servidor.

    Este gatilho não é chamado durante a interpretação no lado do servidor.

beforeUpdate

Chamada bem antes do componente estiver prestes a atualizar a sua árvore do DOM devido à uma mudança de estado reativo.

  • Tipo

    ts
    interface ComponentOptions {
      beforeUpdate?(this: ComponentPublicInstance): void
    }
  • Detalhes

    Este gatilho pode ser usado para acessar o estado do DOM antes da Vue atualizar o DOM. Também é seguro modificar o estado do componente dentro deste gatilho.

    Este gatilho não é chamado durante a interpretação no lado do servidor.

updated

Chamada depois do componente ter atualizado a sua árvore do DOM devido à uma mudança de estado reativo.

  • Tipo

    ts
    interface ComponentOptions {
      updated?(this: ComponentPublicInstance): void
    }
  • Detalhes

    Uma gatilho updated dum componente pai é chamado depois do updated dos seus componentes filhos.

    Este gatilho é chamado depois de qualquer atualização do DOM do componente, que pode ser causada por diferentes mudanças de estado. Se precisarmos acessar o DOM atualizado depois duma mudança de estado específica, devemos usar nextTick().

    Este gatilho não é chamado durante a interpretação no lado do servidor.

    AVISO

    Não altere o estado do componente no gatilho updated - isto provavelmente conduzirá à um laço de atualização infinita!

beforeUnmount

Chamada bem antes duma instância de componente estiver a ser desmontada.

  • Tipo

    ts
    interface ComponentOptions {
      beforeUnmount?(this: ComponentPublicInstance): void
    }
  • Detalhes

    Quando este gatilho é chamado, a instância do componente permanece completamente funcional.

    Este gatilho não é chamado durante a interpretação no lado do servidor.

unmounted

Chamada depois do componente ter sido desmontado.

  • Tipo

    ts
    interface ComponentOptions {
      unmounted?(this: ComponentPublicInstance): void
    }
  • Detalhes

    Um componente é considerado desmontado depois:

    • De todos os seus componentes filhos terem sido desmontados.

    • De todos os seus efeitos reativos associados (efeito de interpretação e computado ou observadores criados durante a setup()) terem sido interrompidos.

    Use este gatilho para limpar os efeitos colaterais criados manualmente tais como temporizadores, ouvintes de eventos de DOM oou conexões de servidor.

    Este gatilho não é chamado durante a interpretação no lado do servidor.

errorCaptured

Chamada quando um erro propagando-se a partir dum componente descendente tiver sido capturado.

  • Tipo

    ts
    interface ComponentOptions {
      errorCaptured?(
        this: ComponentPublicInstance,
        err: unknown,
        instance: ComponentPublicInstance | null,
        info: string
      ): boolean | void
    }
  • Detalhes

    Os erros podem ser capturados a partir das seguintes fontes:

    • Interpretadores de componente
    • Manipuladores de evento
    • Gatilhos do ciclo de vida
    • função setup()
    • Observadores
    • Gatilhos de diretiva personalizada
    • Gatilhos de transição

    O gatilho recebe três argumentos: o erro, a instância do componente que acionou o erro, e uma sequência de caracteres de informação especificando o tipo da fonte do erro.

    DICA

    Em produção, o terceiro argumento (info) será um código encurtado ao invés da sequência de caracteres da informação completa. Nós podemos encontrar o código ao mapeamento da sequência de caracteres na Referência do Código de Erro de Produção.

    Nós podemos modificar o estado do componente na errorCaptured() para exibir um estado de erro ao utilizador. No entanto, é importante que o estado de erro não interprete o conteúdo original que causou o erro; de outro modo o componente será lançado para um laço de interpretação infinita.

    O gatilho pode retornar false para impedir o erro de propagar-se mais. Consulte os detalhes sobre a propagação de erro abaixo.

    Regras de Propagação de Erros

    • Por padrão, todos os erros ainda serão enviados para o nível de aplicação app.config.errorHandler se for definido, para que estes erros possam ser relatados à um serviço de análises num único lugar.

    • Se vários gatilhos de errorCaptured existirem numa cadeia de herança de componentes ou em uma cadeia de pais, todos serão invocados com o mesmo erro, na ordem de baixo para cima. Isto é semelhante ao mecanismo borbulhante de eventos de DOM nativos.

    • Se o próprio gatilho errorCaptured lançar um erro, tanto este erro quanto o erro original capturado serão enviados à app.config.errorHandler.

    • Um gatilho errorCaptured pode retornar false para evitar que o erro continue a propagar-se. Isto significa essencialmente que "este erro já foi manipulado e deve ser ignorado". Ele evitará quaisquer gatilhos errorCaptured adicionais ou app.config.errorHandler de serem invocados por este erro.

renderTracked

Chamada quando uma dependência reativa tiver sido rastreada pelo efeito de interpretação do componente.

Este gatilho é apenas para o modo de desenvolvimento e não é chamado durante a interpretação no lado do servidor.

  • Tipo

    ts
    interface ComponentOptions {
      renderTracked?(this: ComponentPublicInstance, e: DebuggerEvent): void
    }
    
    type DebuggerEvent = {
      effect: ReactiveEffect
      target: object
      type: TrackOpTypes /* 'get' | 'has' | 'iterate' */
      key: any
    }
  • Consulte também Reatividade em Profundidade

renderTriggered

Chamada quando uma dependência reativa acionar o efeito de interpretação do componente a ser executado novamente.

Este gatilho é apenas para o modo de desenvolvimento e não é chamado durante a interpretação no lado do servidor.

  • Tipo

    ts
    interface ComponentOptions {
      renderTriggered?(this: ComponentPublicInstance, e: DebuggerEvent): void
    }
    
    type DebuggerEvent = {
      effect: ReactiveEffect
      target: object
      type: TriggerOpTypes /* 'set' | 'add' | 'delete' | 'clear' */
      key: any
      newValue?: any
      oldValue?: any
      oldTarget?: Map<any, any> | Set<any>
    }
  • Consulte também Reatividade em Profundidade

activated

Chamada depois da instância do componente for inserida no DOM como parte duma árvore armazenada para consulta imediata pelo <KeepAlive>.

Este gatilho não é chamado durante a interpretação no lado do servidor.

deactivated

Chamada depois da instância do componente ser removida do DOM como parte duma árvore armazenada para consulta imediata pelo <KeepAlive>.

Este gatilho não é chamado durante a interpretação no lado do servidor.

serverPrefetch

Função assíncrona a ser resolvida antes da instância do componente estiver à ser interpretada no servidor.

  • Tipo

    ts
    interface ComponentOptions {
      serverPrefetch?(this: ComponentPublicInstance): Promise<any>
    }
  • Detalhes

    Se um gatilho retornar uma promessa, o interpretador do servidor aguardará até a promessa ser resolvida antes de interpretar o componente.

    Este gatilho é chamado apenas durante a interpretação no lado do servidor e pode ser usado para realizar requisição de dados apenas no servidor.

  • Exemplo

    js
    export default {
      data() {
        return {
          data: null
        }
      },
      async serverPrefetch() {
        // componente é interpretado como parte da requisição inicial
        // pré-requisita dados no servidor pois é mais rápido do que no cliente
        this.data = await fetchOnServer(/* ... */)
      },
      async mounted() {
        if (!this.data) {
          // se data for null ao montar, significa que o componente
          // é interpretado dinamicamente no cliente.
          // Realizar uma requisição no lado do cliente.
          this.data = await fetchOnClient(/* ... */)
        }
      }
    }
  • Consulte também Interpretação no Lado do Servidor

Opções: Ciclo de Vida has loaded