Diferencias entre reactive y ref en Vue 3
Clase 19 de 34 • Curso de Vue.js
Reactive vs Ref en Vue 3: ¿Cuál es la diferencia?
En Vue 3, las herramientas reactive
y ref
son fundamentales para trabajar con reactividad. Ambas tienen funciones clave pero diferentes, y entender sus diferencias te ayudará a elegir la más adecuada según tu caso de uso. En este artículo, explicaremos las diferencias entre reactive
y ref
, sus usos típicos, y ejemplos prácticos.
¿Qué es reactive
?
reactive
convierte un objeto en reactivo. Esto significa que Vue rastreará los cambios realizados en las propiedades del objeto y actualizará la interfaz de usuario de forma reactiva.
Uso típico
Usa reactive
cuando trabajas con un objeto que tiene varias propiedades y necesitas que todas sean reactivas.
Ejemplo
import { reactive } from 'vue'; const state = reactive({ count: 0, message: 'Hola mundo' }); // Reactividad state.count++; // Vue rastrea este cambio state.message = 'Adiós mundo'; // También reactivo
⚠️ Nota importante
Cuando desestructuras un objeto reactive
, las propiedades individuales pierden la reactividad:
const { count } = state; // No reactivo
En este caso, es mejor trabajar con el objeto completo.
¿Qué es ref
?
ref
crea un contenedor reactivo para un valor único. Este valor puede ser un número, una cadena, un booleano o incluso un objeto. Para acceder o modificar el valor, necesitas usar la propiedad .value
.
Uso típico
Usa ref
cuando trabajes con un valor primitivo o prefieras una sintaxis más explícita para manejar la reactividad.
Ejemplo
import { ref } from 'vue'; const count = ref(0); // Reactividad count.value++; // Vue rastrea este cambio
Usando ref
con objetos
Aunque puedes usar ref
con objetos, recuerda que el acceso debe realizarse siempre a través de .value
:
const state = ref({ count: 0, message: 'Hola mundo' }); state.value.count++; // Reactivo
Diferencias clave
Característica | reactive | ref |
---|---|---|
Qué maneja | Objetos con múltiples propiedades | Valores únicos o cualquier valor |
Acceso a datos | Directo | A través de .value |
Soporte de desestructuración | No conserva reactividad al desestructurar | Mantiene reactividad si se usa .value |
Uso principal | Estados complejos (objetos y arrays) | Estados simples o valores únicos |
¿Cuándo usar cada uno?
Usa reactive
cuando:
- Necesites manejar un estado complejo con múltiples propiedades y seguir seguimiento en niveles más profundos del objeto.
- Quieras una sintaxis más simple para acceder a las propiedades del objeto.
Ejemplo:
const state = reactive({ user: 'Enrique', age: 30 });
Usa ref
cuando:
- Trabajes con un valor único (número, cadena, booleano, etc.).
- Prefieras controlar explícitamente el acceso mediante
.value
.
Ejemplo:
const count = ref(0);
Conclusión
Ambas herramientas tienen su lugar en Vue 3. Mientras reactive
es ideal para manejar objetos con varias propiedades, ref
es perfecto para valores simples o cuando necesitas control explícito.
Comprender cómo funcionan te ayudará a escribir código más claro y eficiente en tus proyectos de Vue.