shallowReactive() Objeto reativo superficial

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

shallowReactive() Objeto reativo superficial

shallowReactive() deixa reativas apenas as propriedades do primeiro nível do objeto; objetos aninhados permanecem como estão (sem proxy).

GrupoReatividade: Avançado
TipoAPI
EscopoNo Componente
Versão do Vue3.0+
Suporte a SSRSim

📝 Sintaxe

const state = shallowReactive({ count: 0, nested: { a: 1 } })
state.count++         // ✅ dispara
state.nested.a++      // ❌ não dispara

⚙️ Argumentos

targetObjeto (só as propriedades próprias recebem proxy)

Retorno:Um proxy reativo superficial

▶ Exemplo

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

Saída:

The top-level button updates the number; the nested one changes data without refreshing the view.

💡 Pontos-chave

ℹ️ Nota O cenário é parecido com o do shallowRef: grandes estruturas de estado que só precisam de reatividade no primeiro nível.
⚠️ Aviso A view não atualizar ≠ os dados não mudaram: os dados nos níveis aninhados na verdade mudaram, apenas não dispararam a renderização — é uma armadilha comum.
Mais casos em breve.

📚 Tutoriais Relacionados

❓ FAQ

P A diferença de reactive é só desempenho?
R Não apenas: o comportamento também é diferente (aninhados não são reativos) — é uma diferença semântica, não um simples interruptor de otimização.
P Objetos aninhados ainda podem ser observados?
R É preciso observar explicitamente o objeto original com deep, ou envolvê-lo com um ref profundo, para perceber as mudanças.
P Por que esse API existe?
R Para fornecer um invólucro reativo de baixo custo sobre dados grandes/externos, evitando o custo do proxy recursivo.
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%