Contenido del curso
Built-in Components
Componentes personalizados
Composition API
- 12

Composition API: setup en Vue 3
08:13 min - 13

Hooks del ciclo de vida en Vue 3 setup
05:18 min - 14

`ref` y `reactive` en Vue Composition API
07:37 min - 15

Watchers con Composition API en Vue.js
05:32 min - 16

Propiedades computadas con Composition API
Viendo ahora - 17

Props reactivos con toRefs en Vue.js
05:26 min - 18

El argumento context en Vue 3 setup
08:33 min - 19

provide e inject en Vue Composition API
05:00 min - 20

Template Refs en Vue 3 con Composition API
05:33 min - 21

Composition API vs Options API en Vue.js
07:26 min - 22

script setup en Vue 3 sin export default
06:34 min
Cierre del curso
Propiedades computadas con Composition API
Resumen
Las funciones computadas en Composition API de Vue.js te permiten transformar datos reactivos sin saturar tu template. Aprendes a usar computed junto con ref para construir propiedades derivadas, ideal si vienes de Options API y quieres migrar a una sintaxis funcional más limpia.
Esta lectura es para desarrolladores que ya conocen reactividad básica en Vue y quieren entender cómo cambia el manejo de datos derivados al pasar al Composition API.
Qué hace una función computada en Vue.js
Una propiedad computada genera un valor que depende de otras variables reactivas y se actualiza automáticamente cuando esas dependencias cambian. Sirve para mantener tu template limpio y evitar lógica repetida en la vista.
Un caso típico es cuando recibes datos en un formato (por ejemplo, firstName y lastName por separado desde un prop o una base de datos) y necesitas mostrarlos combinados como un full name. En lugar de concatenarlos en cada lugar del template, los unificas en una sola variable computada.
¿Qué es una propiedad computada en Vue.js? Es una función que retorna un valor derivado de variables reactivas. Vue la recalcula automáticamente cuando alguna de sus dependencias cambia, sin que tú tengas que llamarla manualmente.
Cómo se escribe computed con Composition API
La sintaxis cambia respecto a Options API, pero la lógica es la misma. Empiezas importando ref y computed desde Vue, declaras tus variables reactivas y luego defines la propiedad computada como una constante que recibe una función.
El flujo se ve así:
- Importa
refycomputeddesde Vue. - Crea las variables reactivas con
ref, por ejemploconst firstName = ref('Diana')yconst lastName = ref('Martínez'). - Declara la propiedad computada:
const fullName = computed(() => ${firstName.value} ${lastName.value}). - Devuelve
firstName,lastNameyfullNameen elreturnde la funciónsetuppara que el template pueda acceder a ellas.
Fíjate en un detalle importante: dentro de la función setup no usas this. La nueva sintaxis lo hace innecesario y, además, setup se ejecuta antes del ciclo de vida del componente, así que this ni siquiera existiría en ese momento.
Por qué necesitas usar .value dentro de computed
Cuando declaras una variable con ref, Vue la envuelve en un objeto reactivo y el valor real queda en la propiedad .value. Por eso, dentro de la función computada accedes a firstName.value y lastName.value para leer su contenido actual.
Si olvidas el .value, terminarás concatenando el objeto reactivo completo en lugar del string que esperas.
¿Cuándo uso .value en Vue 3? Lo usas dentro del bloque
<script setup>o dentro de la funciónsetupsiempre que accedas al contenido de una variable creada conref. En el template no hace falta porque Vue lo desempaqueta automáticamente.
Qué cuidados debo tener con la reactividad en computed
Las funciones computadas son reactivas con base en sus dependencias, así que cualquier variable reactiva que uses dentro se vuelve parte de esa cadena. Si dentro del computed modificas otra variable que también es reactiva y depende de esta, puedes generar un loop infinito de actualizaciones.
Algunas recomendaciones prácticas:
- Mantén la función computada pura: que solo lea datos y retorne un valor.
- Evita ejecutar funciones que muten estado reactivo dentro del
computed. - Si necesitas reaccionar a cambios con efectos secundarios, usa
watchen lugar decomputed.
Cómo se compara con Options API
En Options API definías las propiedades computadas dentro de un objeto, accediendo a los datos con this.firstName y this.lastName. Funciona, pero el código se llena de referencias a this y depende de un objeto JSON enorme que configura todo el componente.
Con Composition API el mismo ejemplo queda más corto, sin this, usando puro Vanilla JavaScript dentro de la función setup. La reactividad sigue intacta, pero el código se siente más legible y modular. Es el mismo concepto, expresado de forma funcional.
Te invito a tomar el ejemplo del full name y proponer otra función computada útil: un total de carrito a partir de una lista de productos, un texto formateado con mayúsculas y minúsculas, o un filtro derivado de un input. Compártelo en los comentarios y combínalo con lo que ya viste de ref, reactive y watch.