toRef() Converter uma propriedade em um ref que mantém o vínculo

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

toRef() Converter uma propriedade em um ref que mantém o vínculo

toRef() converte uma propriedade de um objeto reativo em um ref com vínculo bidirecional: ler ou escrever por ele equivale a operar a propriedade original.

GrupoReatividade: Utilitários
TipoAPI
EscopoNo Componente
Versão do Vue3.0+
Suporte a SSRSim

📝 Sintaxe

const state = reactive({ count: 0 })
const count = toRef(state, 'count')
count.value++          // equivale a state.count++

⚙️ Argumentos

objectUm objeto reativo
keyO nome da propriedade

Retorno:Um ref vinculado bidirecionalmente à propriedade original

▶ Exemplo

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

Saída:

Both numbers always match: writing the ref updates state.count.

💡 Pontos-chave

💡 Dica Uso padrão: converter um campo de props em um ref antes de passá-lo a um composable, para não perder a reatividade.
ℹ️ Nota toRef(state, 'a') equivale a toRefs(state).a; também funciona quando a propriedade não existe (é gravável).
⚠️ Aviso O toRef é apenas um canal e não copia os dados: se o objeto de origem for substituído por inteiro, o vínculo se rompe.
Mais casos em breve.

📚 Tutoriais Relacionados

❓ FAQ

P Qual a relação entre toRef e toRefs?
R toRef trata uma única propriedade; toRefs devolve de uma vez um objeto de refs para todas as propriedades — este último é comum para desestruturar o estado inteiro.
P Por que não dá para substituir por desestruturação?
R const { count } = state devolve um número-retrato, que deixa de sincronizar com as mudanças seguintes — só o toRef mantém o vínculo.
P Funciona em objetos comuns?
R Sim, mas objetos comuns não têm reatividade; o ref é apenas um canal prático de leitura e escrita dessa propriedade.
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%