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.
| Grupo | Reatividade: Avançado |
|---|---|
| Tipo | API |
| Escopo | No Componente |
| Versão do Vue | 3.0+ |
| Suporte a SSR | Sim |
📝 Sintaxe
const chart = markRaw(new Chart(el, opts))
const state = reactive({ chart }) // chart não será proxy
⚙️ Argumentos
| value | Objeto (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.
🏷️ Avançado relacionados
💡 Casos Relacionados
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.