readonly() Criar um proxy somente leitura
Última atualização: 2026-10-22
readonly() Criar um proxy somente leitura
readonly() cria um proxy somente leitura dos dados originais: qualquer escrita emite um aviso e falha, protegendo os dados contra mutações acidentais.
| Grupo | Reatividade: Essencial |
|---|---|
| Tipo | API |
| Escopo | No Componente |
| Versão do Vue | 3.0+ |
| Suporte a SSR | Sim |
📝 Sintaxe
const config = readonly({ theme: 'dark' })
config.theme = 'light' // ❌ aviso: Set operation on key failed
⚙️ Argumentos
| target | Um objeto ou um ref (passar um ref retorna um ref somente leitura) |
|---|
Retorno:Um proxy profundo somente leitura
▶ Exemplo
Edite o código abaixo e veja o resultado ao vivo:
Saída:
Theme stays dark; clicking logs a failed-write warning and nothing changes.
💡 Pontos-chave
💡 Dica Cenário típico: ao passar um objeto de configuração a um componente filho, envolva-o com readonly para impedir que o filho altere dados do pai.
ℹ️ Nota O readonly é unilateral: mudanças na origem (objeto original) se refletem no proxy somente leitura; escritas na direção contrária são bloqueadas.
⚠️ Aviso Em desenvolvimento, escritas emitem aviso; em produção, falham silenciosamente — não dependa do aviso como validação em tempo de execução.
🏷️ Essencial relacionados
💡 Casos Relacionados
Mais casos em breve.
📚 Tutoriais Relacionados
❓ FAQ
P O readonly impede todas as modificações?
R Ele intercepta escritas feitas pelo proxy; se você burlar o proxy e operar o objeto original diretamente, ainda pode modificar — o proxy somente leitura não equivale a imutabilidade.
P Depois de envolver com readonly, os dados ainda são atualizados?
R Sim: mudanças nos dados de origem se refletem no proxy somente leitura; o que não se pode é escrever na direção contrária.
P Qual a diferença para Object.freeze?
R freeze congela o objeto real de forma irreversível; readonly é apenas uma camada de proxy que intercepta e preserva o rastreamento de reatividade.