Skip to content

Instância do Componente

INFO

Esta página documenta as propriedades e os métodos embutidos expostos na instância pública do componente, por exemplo, this.

Todas as propriedades listadas nesta página são de apenas leitura (exceto propriedades encaixadas na $data).

$data

O objeto retornado a partir da opção data, tornado reativo pelo componente. A instância do componente delega o acesso às propriedades sobre o seu objeto de dados.

  • Tipo

    ts
    interface ComponentPublicInstance {
      $data: object
    }

$props

Um objeto que representa as propriedades atuais e resolvidas do componente.

  • Tipo

    ts
    interface ComponentPublicInstance {
      $props: object
    }
  • Detalhes

    Apenas as propriedades declarados através da opção props serão incluídas. A instância do componente delega o acesso às propriedades sobre o seu objeto de propriedades.

$el

O nó de DOM de raiz que a instância do componente está gerir.

  • Tipo

    ts
    interface ComponentPublicInstance {
      $el: Node | undefined
    }
  • Detalhes

    $el será undefined até o component ser montado.

    • Para componentes com um único elemento de raiz, $el apontará para este elemento.
    • Para componentes com raiz de texto, $el apontará para o nó de texto.
    • Para componentes com vários nós de raiz, $el será o nó de DOM de espaço reservado que a Vue usa para continuar a rastrear a posição do componente no DOM (um nó de texto ou um nó de comentário no modo de hidratação da interpretação no lado do servidor).

    DICA

    Por questões consistência, é recomendado usar referências de modelo de marcação para o acesso direto aos elementos em vez de depender de $el.

$options

As opções de componente resolvidas usadas para instanciar a instância do componente atual.

  • Tipo

    ts
    interface ComponentPublicInstance {
      $options: ComponentOptions
    }
  • Detalhes

    O objeto $options expõe as opções resolvidas para o componente atual e é o resultado da combinação destas possíveis fontes:

    • Misturas globais
    • Base de extends do componente
    • Misturas do componente

    É normalmente usado para suportar opções de componente personalizadas:

    js
    const app = createApp({
      customOption: 'foo',
      created() {
        console.log(this.$options.customOption) // => 'foo'
      }
    })
  • Consulte também: app.config.optionMergeStrategies

$parent

A instância pai, se a instância atual tiver uma. Será null para a própria instância de raiz.

  • Tipo

    ts
    interface ComponentPublicInstance {
      $parent: ComponentPublicInstance | null
    }

$root

A instância do componente de raiz da árvore do componente atual. Se a instância atual não tiver pais, este valor será ele próprio.

  • Tipo

    ts
    interface ComponentPublicInstance {
      $root: ComponentPublicInstance
    }

$slots

Um objeto que representa as ranhuras passadas pelo componente pai.

  • Tipo

    ts
    interface ComponentPublicInstance {
      $slots: { [name: string]: Slot }
    }
    
    type Slot = (...args: any[]) => VNode[]
  • Detalhes

    Normalmente usada quando escrevemos manualmente funções de interpretação, mas também pode ser usada para detetar se uma ranhura está presente.

    Cada ranhura é exposta sobre this.$slots como uma função que retorna um vetor de nós virtuais sob a chave correspondendo ao nome daquela ranhura. A ranhura padrão é exposta como this.$slots.default.

    Se uma ranhura for uma ranhura isolada, os argumentos passados às funções da ranhura estão disponíveis à ranhura como suas propriedades de ranhura.

  • Consulte também: Funções de Interpretação - Interpretação de Ranhuras

$refs

Um objeto de elementos de DOM e as instâncias de componente, registadas através das referências do modelo de marcação.

$attrs

Um objeto que contém os atributos de passagem do componente.

  • Tipo

    ts
    interface ComponentPublicInstance {
      $attrs: object
    }
  • Detalhes

    Atributos de Passagem são atributos e manipuladores de eventos passados ​​pelo componente pai, mas não declarados como uma propriedade ou um evento emitido pelo filho.

    Por padrão, tudo na $attrs será herdado automaticamente no elemento de raiz do componente se houver apenas um único elemento de raiz. Este comportamento é desativado se o componente tiver vários nós de raiz e pode ser explicitamente desativado com a opção inheritAttrs.

  • Consulte também:

$watch()

API imperativa para criar observadores.

  • Tipo

    ts
    interface ComponentPublicInstance {
      $watch(
        source: string | (() => any),
        callback: WatchCallback,
        options?: WatchOptions
      ): StopHandle
    }
    
    type WatchCallback<T> = (
      value: T,
      oldValue: T,
      onCleanup: (cleanupFn: () => void) => void
    ) => void
    
    interface WatchOptions {
      immediate?: boolean // predefinida como: false
      deep?: boolean // predefinida como: false
      flush?: 'pre' | 'post' | 'sync' // predefinida como: 'pre'
      onTrack?: (event: DebuggerEvent) => void
      onTrigger?: (event: DebuggerEvent) => void
    }
    
    type StopHandle = () => void
  • Detalhes

    O primeiro argumento é a fonte do observador. Pode ser uma sequência de caracteres do nome da propriedade do componente, uma simples sequência de caracteres do caminho delimitada por ponto, ou uma função recuperadora.

    O segundo argumento é a função de resposta. A função de resposta recebe o novo valor e o valor antigo da fonte observada.

    • immediate: aciona a função de resposta imediatamente na criação do observador. O valor antigo será undefined na primeira chamada.
    • deep: força a travessia profunda da fonte se for um objeto, para que a função de resposta dispare sobre as mutações profundas. Consulte Observadores Profundos.
    • flush: ajusta o tempo de descarga da função de resposta. Consulte Tempo de Descarga da Função de Resposta e watchEffect().
    • onTrack / onTrigger: depura as dependências do observador. Consulte Depuração do Observador.
  • Exemplo

    Observar um nome de propriedade:

    js
    this.$watch('a', (newVal, oldVal) => {})

    Observar um caminho delimitado por ponto:

    js
    this.$watch('a.b', (newVal, oldVal) => {})

    Usar função recuperadora para expressões mais complexas:

    js
    this.$watch(
      // sempre que a expressão `this.a + this.b` retornar
      // um resultado diferente, o manipulador será chamado.
      // É como se estivéssemos observando uma propriedade computada
      // sem definir a própria propriedade computada.
      () => this.a + this.b,
      (newVal, oldVal) => {}
    )

    Parar o observador:

    js
    const unwatch = this.$watch('a', cb)
    
    // depois...
    unwatch()
  • Consulte também:

$emit()

Aciona um evento personalizado na instância atual. Quaisquer argumentos adicionais serão passados à função de resposta do ouvinte.

  • Tipo

    ts
    interface ComponentPublicInstance {
      $emit(event: string, ...args: any[]): void
    }
  • Exemplo

    js
    export default {
      created() {
        // único evento
        this.$emit('foo')
        // com argumentos adicionais
        this.$emit('bar', 1, 2, 3)
      }
    }
  • Consulte também:

$forceUpdate()

Força a instância do componente à desenhar novamente

  • Tipo

    ts
    interface ComponentPublicInstance {
      $forceUpdate(): void
    }
  • Detalhes

    Isto deve ser raramente necessário dado o sistema de reatividade totalmente automático da Vue. Os únicos casos em que podemos precisar dela é quando críamos explicitamente um estado de componente que não é reativo usando APIs de reatividade avançadas.

$nextTick()

Versão vinculada à instância da nextTick() global.

  • Tipo

    ts
    interface ComponentPublicInstance {
      $nextTick(callback?: (this: ComponentPublicInstance) => void): Promise<void>
    }
  • Detalhes

    A única diferença da versão global de nextTick() é que a função de resposta passada à this.$nextTick() terá o seu contexto this vinculado à instância do componente atual.

  • Consulte também: nextTick()

Instância do Componente has loaded