Reactive en Vue: cómo agrupar estado
Clase 24 de 37 • Curso de Reactividad con Vue.js 3
Contenido del curso
Reactividad a profundidad
- 6

Paradigma reactivo: responsivo, resiliente y escalable
03:49 min - 7

Proxies: la clave de la reactividad Vue
06:29 min - 8

Creando tu primer mini framework reactivo
07:04 min - 9

Integrar Proxy para crear mini framework reactivo
06:06 min - 10

Refleja tu lógica mantenible con JavaScript
09:29 min - 11

Conceptos clave de reactividad: efectos, track y trigger
03:53 min - 12

Efectos trackers triggers: cómo Vue vincula datos
07:39 min
Templates de Vue.js
- 13
Templates de HTML en Vue.js: Mejores Prácticas Esenciales
00:21 min - 14

Estructura inicial de Platzy Commerce con Vue
06:52 min - 15

Expresiones JavaScript en templates Vue
06:49 min - 16

v-bind y clase reactiva en Vue.js
06:08 min - 17

v-show vs v-if en Vue: cuándo usar cada uno
08:53 min - 18

Directiva v-for para listas en Vue.js
08:14 min - 19

Eventos con v-on en templates de Vue
06:49 min
APIs internas de Vue.js
Segunda capa: componentes de Vue.js
- 25

Crear componentes reutilizables con Vue
06:56 min - 26

Cómo pasar datos de padre a hijo en Vue
14:13 min - 27
Creación de Componentes Personalizados en Aplicaciones Web
00:37 min - 28

Eventos personalizados en Vue: comunicar hijo a padre
04:27 min - 29

Eventos personalizados con Composition API
03:57 min - 30

Watchers en Vue Options API
08:53 min - 31

Watchers en Vue Composition API
08:19 min - 32

Computed properties vs watchers en Vue
05:17 min - 33

Computed en Vue Composition API
06:20 min - 34

Ciclos de vida en Vue: cuándo y cómo cargar datos
08:19 min - 35

Ciclos de vida en Composition API
06:03 min
Siguientes pasos
Aprende a organizar estados reactivos en Vue con la función interna Reactive y trabaja de forma más limpia en Composition API. Aquí verás cómo agrupar propiedades en un solo estado, evitar el uso de .value dentro del código y exponer referencias al template con torefs de forma segura y clara.
¿Qué es Reactive en Vue y por qué agrupa estados?
Trabajar con varias refs puede fragmentar la lógica. Con Reactive, puedes convertir un objeto en estado reactivo y manejarlo como si fuera data del Options API. Esto permite agrupar por características: producto, carrito y códigos de descuento, manteniendo un flujo funcional ordenado.
- Reactive recibe un objeto y lo vuelve reactivo, como data.
- Puedes crear un product state y un cart state bien definidos.
- Se evita el uso de .value en propiedades internas.
- El código queda más cómodo y legible para mantener y escalar.
¿Cómo crear product state y cart state con Reactive?
La idea es pasar de múltiples refs sueltas a estados agrupados. Así puedes tener todo el estado del producto y del carrito en objetos reactivos, con propiedades como product, activeImage, cartOpen y cart.
// Estado del producto
const productState = Reactive({
product: { /* datos del producto */ },
activeImage: 0,
})
// Estado del carrito
const cartState = Reactive({
cartOpen: false,
cart: [],
})
¿Cómo reemplazar usos existentes sin romper nada?
- Donde antes usabas
product, ahora usa productState.product. - Donde antes usabas
cart, ahora usa cartState.cart. - Si accedías con .value, elimínalo: ya no es una ref, es parte de un objeto reactivo.
- Mantén fuera del estado funciones como add to carts si no son datos del carrito.
¿Qué beneficios concretos obtienes?
- Menos fricción con .value en propiedades internas.
- Estructura clara por dominios: producto, carrito, descuento.
- Comportamiento familiar a data del Options API mediante proxies.
¿Cómo exponer referencias con torefs en setup?
En setup, todo lo que regresas al template debe ser referencias. Los objetos creados con Reactive no son refs, sino objetos reactivos. Para convertir cada propiedad en referencia, usa torefs.
// Dentro de setup
return {
// Convierte cada propiedad de productState en una ref
...torefs(productState),
// Convierte cada propiedad de cartState en una ref
...torefs(cartState),
// Funciones que no son parte del estado reactivo
addToCarts,
}
¿Qué pasa con otras referencias existentes?
- Si tienes un discount code como ref, se mantiene igual.
- Si usas propiedades dentro de product state, quita .value.
-
Asegúrate de reemplazar referencias antiguas:
cartporcartState.cartyproductporproductState.product. -
Claves de implementación:
- Usa Reactive para agrupar estado de producto y carrito.
- Reemplaza accesos directos por
productState.productycartState.cart. - Elimina .value en propiedades internas de objetos reactivos.
- En setup, usa torefs para exponer todo al template.
¿Tienes dudas sobre cómo migrar tus refs a un estado agrupado con Reactive o cómo aplicar torefs en tu proyecto? Comparte tu caso y lo revisamos juntos.