Ciclos de vida en Composition API
Clase 35 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
Viendo ahora
Siguientes pasos
Comprende con claridad cómo funciona el ciclo de vida en Composition API y cuándo usar funciones internas como setup, onMounted y onUpdated para cargar datos, manipular el DOM y optimizar la lógica con propiedades computadas. Aquí encontrarás ejemplos prácticos con reactividad y buenas prácticas para que tu componente de View sea claro y eficiente.
¿Cómo cambia el ciclo de vida en Composition API frente a Options API?
A diferencia del Options API, en Composition API no declaras opciones como created, beforeCreate o mounted. Todo parte de una sola función: setup. Lo que escribas dentro de setup ocurre en el equivalente a created/beforeCreate: ya hay información reactiva disponible, pero el DOM aún no está montado.
- setup equivale a created/beforeCreate: lógica inicial y acceso a datos reactivos.
- DOM no disponible en setup: evita depender de elementos montados.
- Funciones internas con prefijo on: onBeforeMount, onMounted, onUpdated, etc., para responder a cada etapa.
¿Qué hacer en setup, onMounted y updated para cada caso?
Elegir el momento adecuado evita errores y hace tu componente más simple. Usa setup para cargar datos, onMounted para trabajar con el DOM, y onUpdated para reaccionar a cambios ya reflejados en la interfaz.
¿Cómo cargar datos con fetch en setup?
En setup puedes realizar un fetch a una API y poblar una referencia reactiva. Primero vacía la lista y luego asigna los datos recibidos a su .value.
<script setup>
import { ref, onMounted } from 'vue'
const productos = ref([])
// Carga inicial: ocurre en el ciclo equivalente a created/beforeCreate.
fetch('URL_DE_TU_API')
.then(res => res.json())
.then(data => {
productos.value = [] // vaciar referencia.
productos.value = data // asignar datos de la API.
})
.catch(err => console.error(err))
// Acceso a productos en la vista se hará de forma reactiva.
</script>
¿Qué realizar después del montaje con onMounted?
Cuando el componente ya se montó en el navegador, puedes interactuar con el DOM o ejecutar tareas que requieren elementos presentes.
<script setup>
import { onMounted } from 'vue'
onMounted(() => {
console.log('mounted: componente listo en el navegador')
// Aquí podrías medir nodos, enfocar inputs o integrar librerías del DOM.
})
</script>
¿Cuándo elegir updated?
- Cuando necesitas ejecutar lógica después de que un cambio reactivo ya impactó el DOM.
- Úsalo con moderación: puede dispararse muchas veces.
¿Cómo aplicar propiedades computadas para filtrar productos?
Propón un reto con reactividad: crear un input que capture lo que escribe el usuario y, con una propiedad computada, filtrar la lista de productos sin mutar el original. Así aprovechas referencias reactivas, eventos del teclado y computed.
<template>
<input
type="text"
placeholder="Buscar producto..."
@input="consulta = $event.target.value"
/>
<ul>
<li v-for="p in productosFiltrados" :key="p.id">
{{ p.nombre }} - {{ p.precio }}
</li>
</ul>
</template>
<script setup>
import { ref, computed } from 'vue'
const productos = ref([]) // se llena con la API en setup.
const consulta = ref('') // texto que escribe el usuario.
const productosFiltrados = computed(() => {
const q = consulta.value.trim().toLowerCase()
if (!q) return productos.value
return productos.value.filter(p =>
String(p.nombre || '').toLowerCase().includes(q)
)
})
</script>
Puntos clave que refuerzan habilidades prácticas:
- Reactividad con referencias: usa ref y accede con .value.
- Propiedades computadas: recalculan vistas derivadas sin duplicar estado.
- Eventos del teclado: captura @input (o @keyup) para actualizar la búsqueda.
- Ciclos de vida con funciones internas: setup para datos, onMounted para DOM, onUpdated para post-actualizaciones.
- Trabajo con API y JSON: convierte respuesta a JSON y asigna a tu estado reactivo.
¿Tienes una solución distinta para el filtrado o un caso especial con mounted/updated? Cuéntalo en los comentarios y comparte tu enfoque.