markRaw() Marcar um objeto para nunca ser proxy

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

markRaw() Marcar um objeto para nunca ser proxy

markRaw() marca um objeto para que ele não seja proxy mesmo quando colocado em estruturas reativas, adequado para instâncias de terceiros ou grandes dados estáticos.

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

📝 Sintaxe

const chart = markRaw(new Chart(el, opts))
const state = reactive({ chart })   // chart não será proxy

⚙️ Argumentos

valueObjeto (recebe uma marcação interna)

Retorno:O próprio objeto

▶ Exemplo

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

Saída:

Shows 'proxied? false' — the mark works.

💡 Pontos-chave

💡 Dica Antes de colocar instâncias de classes de terceiros (gráficos, editores, mapas) em estado reativo, aplique markRaw para evitar comportamentos estranhos causados pelo proxy.
⚠️ Aviso A marcação é irreversível e o objeto não reage: se precisar que ele acompanhe mudanças, não use markRaw.
ℹ️ Nota Adequado para dados grandes e estáticos (como listas de cidades), evitando custo de proxy desnecessário.
Mais casos em breve.

📚 Tutoriais Relacionados

❓ FAQ

P Qual a diferença de shallowRef?
R shallowRef é 'só a substituição completa é reativa'; markRaw é 'este objeto nunca é proxy' — o primeiro controla a camada externa, o segundo um objeto específico.
P Os dados ainda atualizam depois de usá-lo?
R Não: o objeto fica fora do sistema reativo e as alterações não disparam renderização.
P Dá para cancelar a marcação?
R Não, a marcação é irreversível; se precisar de reatividade, guarde uma cópia proxy.
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%