Reactividad con `ref` en Vue 3: Creación y Uso Práctico
Clase 12 de 34 • Curso de Vue.js
¿Cómo funciona ref en Vue 3?
En Vue 3, uno de los conceptos fundamentales para trabajar con la reactividad es el uso de ref
. Si alguna vez has escuchado la frase "reactividad en Vue" y te has preguntado de qué se trata, estás de suerte pues vamos a desmenuzar este tema de manera clara.
¿Qué es ref
?
ref
es una función proporcionada por Vue que nos permite crear variables reactivas. Estas variables son como "contenedores mágicos" que actualizan automáticamente las vistas (el HTML) cada vez que cambian.
Es decir, con ref
puedes vincular datos y la interfaz de usuario de forma sencilla y eficiente.
Imagina que tienes una caja (tu aplicación) y que dentro de esta caja tienes un sensor que detecta cambios. Cada vez que algo en la caja se mueve o cambia, el sensor envía una señal y actualiza el exterior de la caja (la interfaz). Eso es exactamente lo que hace ref
.
Cómo funciona ref
Cuando utilizas ref
, estás creando un objeto reactivo que envuelve un valor. Este objeto tiene una propiedad llamada value
, que es donde realmente se almacena el valor. Para modificar o acceder a este valor, necesitas usar esta propiedad.
Por ejemplo:
<script setup> import { ref } from 'vue'; const count = ref(0) const increment = () => { count.value++; } </script>
En este ejemplo:
- Declaramos
count
como un valor reactivo conref(0)
. Esto significa quecount
empieza en 0. - Usamos
count.value
para acceder o modificar su valor. - Cada vez que cambiamos
count.value
, Vue detecta el cambio y actualiza automáticamente la vista donde se utiliza.
En tu plantilla (HTML), puedes mostrar el valor con:
<template> <div> <p>El contador está en: {{ count }}</p> <button @click="increment">Incrementar</button> </div> </template>
¿Por qué usar .value
?
Esto es necesario porque ref
crea un "envoltorio" alrededor del valor. Este envoltorio permite a Vue rastrear los cambios en el valor, pero significa que siempre debes acceder a él mediante la propiedad value
en JavaScript. Sin embargo, en las plantillas, no necesitas usar .value
, ya que Vue lo maneja automáticamente.
⚠️ Nota importante: Si olvidas usar
.value
en tu código JavaScript, no verás los cambios reflejados y probablemente te confundas. Así que ¡no lo olvides!
¿Qué tipos de valores puede manejar ref
?
ref
es extremadamente flexible. Puedes usarlo con:
-
Valores primitivos: como números, cadenas, booleanos, etc.
const message = ref('Hola, Vue 3!'); message.value = 'Reactividad es asombrosa!';
-
Objetos: Aunque aquí es más común usar
reactive
(lo veremos en otra lección), puedes usarref
si necesitas una reactividad más específica.const user = ref({ name: 'Enrique', age: 25 }); user.value.name = 'María';
-
Arrays: Puedes manipularlos como harías normalmente.
const items = ref([1, 2, 3]); items.value.push(4); // [1, 2, 3, 4]
ref
es una herramienta fundamental y esencial para cualquier desarrollador que trabaje con Vue 3.
Entender cómo funciona y cuándo usarlo te ayudará a construir aplicaciones reactivas de manera eficiente.
Recuerda:
- Usa
ref
para valores individuales o cuando necesites una reactividad controlada. - Siempre accede o modifica el valor con
.value
en JavaScript. - Practica con ejemplos sencillos y experimenta para dominar este concepto.