Hooks del ciclo de vida de Vue3
Las funciones de hooks del ciclo de vida en Vue.js son una serie de métodos que Vue llama automáticamente durante el proceso de creación, actualización y destrucción de la instancia del componente. En estos pasos, el componente activa una serie de funciones llamadas 'hooks del ciclo de vida', que permiten a los desarrolladores ejecutar código personalizado en momentos específicos.
Registro y uso de los hooks del ciclo de vida
Hook mounted: este hook se activa después de que el componente completa el renderizado inicial y genera los nodos DOM. Por ejemplo:
export default {
mounted() {
console.log(`组件已挂载。`);
}
}Otros hooks comunes: además de mounted, también hay hooks como updated y unmounted, que se llaman en diferentes etapas del ciclo de vida de la instancia.
Precauciones sobre los hooks del ciclo de vida
Contexto de this:El this en todas las funciones de hooks del ciclo de vida apunta automáticamente a la instancia del componente que lo invoca.
Evita usar funciones flecha:Al definir hooks del ciclo de vida, no uses funciones flecha, porque esto impide acceder a la instancia del componente a través de this.
Al usar adecuadamente los hooks del ciclo de vida, los desarrolladores pueden ejecutar lógica específica en diferentes etapas del componente, mejorando la flexibilidad y funcionalidad del componente.
A continuación se muestra el diagrama del ciclo de vida de la instancia:

A continuación se presentan las funciones de hooks del ciclo de vida de Vue.js
| Nombre del hook | Momento de activación |
|---|---|
beforeCreate | Se llama después de la inicialización de la instancia y antes de la observación de datos y la configuración de eventos. |
created | Se llama inmediatamente después de que la instancia se haya creado; en este momento, la instancia ya ha completado la observación de datos, el cálculo de propiedades y métodos, y las devoluciones de llamada de watch/event. |
beforeMount | Se llama antes de que comience el montaje: la función render correspondiente se llama por primera vez. |
mounted | elpor el recién creadovm.$elreemplazado y montado en la instancia, luego se llama a este hook. |
beforeUpdate | Se llama cuando se actualizan los datos, antes de que el DOM virtual se vuelva a renderizar y se apliquen parches. |
updated | Se llama después de que el DOM virtual se vuelva a renderizar y se apliquen parches debido a cambios en los datos. |
beforeUnmount | Se llama antes de que la instancia se desmonte. |
unmounted | Se llama después de que la instancia se haya desmontado. |
A continuación se presenta una introducción detallada a los hooks del ciclo de vida de los componentes de Vue:
Las funciones de hooks del ciclo de vida en Vue.js son una serie de métodos que Vue llama automáticamente durante el proceso de creación, actualización y destrucción de la instancia del componente. A través de estas funciones de hooks, se pueden ejecutar operaciones específicas en diferentes etapas del ciclo de vida del componente. A continuación se presenta una introducción detallada a los hooks del ciclo de vida de los componentes de Vue:
1. beforeCreate
- Descripción: se llama después de la inicialización de la instancia, antes de la observación de datos y la configuración de eventos.
- Uso: en esta etapa se pueden inicializar algunos datos que no están siendo proxyados por Vue.
Ejemplo:
Ejemplo
console.log('beforeCreate:La instancia acaba de ser creada');
}
2. created
- Descripción: se llama inmediatamente después de que la instancia se haya creado; en este momento, la instancia ya ha completado la siguiente configuración: observación de datos, cálculo de propiedades y métodos, devoluciones de llamada de watch/event; la etapa de montaje aún no ha comenzado.
- Uso: en esta etapa se puede acceder a los datos y modificarlos, pero el DOM aún no se ha montado.
Ejemplo:
Ejemplo
console.log('created:La instancia se ha creado');
}
3. beforeMount
- Descripción: se llama antes de que comience el montaje: la función render correspondiente se llama por primera vez.
- Uso: realizar algunas operaciones antes del montaje, como modificar la estructura del DOM, etc.
Ejemplo:
Ejemplo
console.log('beforeMount:Antes de que comience el montaje');
}
4. mounted
- Descripción:
elpor el recién creadovm.$elreemplazado y montado en la instancia, luego se llama a este hook. - Uso: en esta etapa se puede manipular el DOM y ejecutar lógica relacionada con el DOM.
Ejemplo:
Ejemplo
console.log('mounted:La instancia se ha montado');
}
5. beforeUpdate
- Descripción: se llama cuando se actualizan los datos, antes de que el DOM virtual se vuelva a renderizar y se apliquen parches.
- Uso: en esta etapa se puede acceder al estado anterior a la actualización.
Ejemplo:
Ejemplo
console.log('beforeUpdate:Antes de la actualización de datos');
}
6. updated
- Descripción: se llama después de que el DOM virtual se vuelva a renderizar y se apliquen parches debido a cambios en los datos.
- Uso: en esta etapa se puede manipular el DOM, pero evita cambiar los datos durante este período, ya que podría provocar un bucle infinito de actualizaciones.
Ejemplo:
Ejemplo
console.log('updated:Actualización de datos completada');
}
7. beforeUnmount(Vue 3)
- Descripción: se llama antes de que la instancia se desmonte.
- Uso: realizar algunas operaciones de limpieza antes de que la instancia se desmonte, como cancelar la escucha de eventos, etc.
Ejemplo:
Ejemplo
console.log('beforeUnmount:Antes de que la instancia se desmonte');
}
8. unmounted(Vue 3)
- Descripción: se llama después de que la instancia se haya desmontado.
- Uso: realizar algunas operaciones de limpieza después de que la instancia se haya desmontado, como destruir temporizadores, etc.
Ejemplo:
Ejemplo
console.log('unmounted:La instancia se ha desmontado');
}
Orden de ejecución de los hooks del ciclo de vida
- beforeCreate
- created
- beforeMount
- mounted
- beforeUpdate (se activa cuando cambian los datos)
- updated (se activa cuando cambian los datos)
- beforeUnmount
- unmounted
Ejemplo
El siguiente es un ejemplo completo de un componente de Vue que muestra el uso de todas las funciones de hooks del ciclo de vida:
Ejemplo
template: `<div>{{ message }}</div>`,
data() {
return {
message: 'Hello, Vue!'
};
},
beforeCreate() {
console.log('beforeCreate:La instancia acaba de ser creada');
},
created() {
console.log('created:La instancia se ha creado');
},
beforeMount() {
console.log('beforeMount:Antes de que comience el montaje');
},
mounted() {
console.log('mounted:La instancia se ha montado');
},
beforeUpdate() {
console.log('beforeUpdate:Antes de la actualización de datos');
},
updated() {
console.log('updated:Actualización de datos completada');
},
beforeUnmount() {
console.log('beforeUnmount:Antes de que la instancia se desmonte');
},
unmounted() {
console.log('unmounted:La instancia se ha desmontado');
}
};
const app = Vue.createApp({
components: {
LifecycleDemo
}
});
app.mount('#app');
Pruébalo »
Este ejemplo imprimirá en la consola los registros de cada función de hook del ciclo de vida, lo que ayuda a comprender el orden y el propósito de cada etapa del ciclo de vida.

Hooks de la Composition API
Vue 3 introduce la Composition API (Composition API), a través desetupla función permite organizar los hooks del ciclo de vida de manera más clara a nivel lógico. Al usar la Composition API, estos hooks se definen medianteonXxxla función:
onMounted: equivalente amounted。onBeforeUnmount: equivalente abeforeUnmount。onUnmounted: equivalente aunmounted。onBeforeMount: equivalente abeforeMount。onBeforeUpdate: equivalente abeforeUpdate。onUpdated: equivalente aupdated。onCreatedyonBeforeCreateEn la Composition API normalmente no se utilizan, porquesetupel código en su interior se ejecuta durante la etapa de creación.
Hooks del ciclo de vida que utilizan la Composition API:
Ejemplo
export default {
setup() {
onMounted(() => {
console.log('¡Componente montado!');
// Realiza operaciones de inicialización aquí
});
onBeforeUnmount(() => {
console.log('¡El componente está a punto de desmontarse!');
// Realiza operaciones de limpieza aquí
});
}
};
Ventajas de la Composition API:
- Alta reutilización: se pueden combinar los hooks del ciclo de vida con otra lógica, lo que facilita la encapsulación y la reutilización.
- Lógica más clara: con
setupla otra lógica en su interior se implementa en una sola función, reduciendo la dispersión y la complejidad del código.