inject() Injetar dependências fornecidas pelo ancestral

Última atualização: 2026-10-22

inject() Injetar dependências fornecidas pelo ancestral

inject() obtém em qualquer componente descendente os dados fornecidos pelo ancestral via provide, com valor padrão opcional como reserva.

GrupoInjeção de Dependência
TipoAPI
EscopoNo Componente
Versão do Vue3.0+
Suporte a SSRSim

📝 Sintaxe

const theme = inject("theme")                 // undefined quando não fornecido
const theme = inject("theme", "light")        // valor padrão
const theme = inject("theme", () => ref("light"))  // valor padrão de fábrica (recomendado, evita instância compartilhada)

⚙️ Argumentos

keyChave da dependência (correspondente ao provide)
defaultValueValor padrão opcional; passar uma função fábrica evita compartilhamento de referência

Retorno:O valor injetado (quando não fornecido, retorna o valor padrão ou undefined)

▶ Exemplo

Edite o código abaixo e veja o resultado ao vivo:

Saída:

Without a provider it shows 'Theme: light by default'.

💡 Pontos-chave

⚠️ Aviso Não passe literais de objeto/array como valor padrão: vários componentes compartilhariam a mesma instância; use uma função fábrica que devolve um novo objeto.
💡 Dica Ao depender de reatividade, lembre-se de manter a forma de ref depois de injetar: o template desembrulha automaticamente, no script escreva .value.
ℹ️ Nota Só pode ser chamado dentro do setup ou de composables (fase de execução síncrona).
Mais casos em breve.

📚 Tutoriais Relacionados

❓ FAQ

P Dá erro se o ancestral não forneceu?
R Não dá erro, retorna undefined (com aviso em desenvolvimento); por isso dar valor padrão é mais seguro.
P Depois de injetar, alterá-lo afeta o ancestral?
R O que se obtém é a mesma referência: alterar o .value do ref afeta o estado do ancestral, o que geralmente não é o comportamento esperado.
P Por que usar valor padrão de fábrica?
R Cada chamada gera uma instância independente, evitando que vários componentes contaminem mutuamente os dados padrão.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%