# Hooks de ciclo de vida
Note
Todos los hooks de ciclo de vida automáticamente tienen sus contextos de this
vinculados a la instancia, así que puede acceder dato, propiedades computadas y métodos. Este significa que no debe utilizar funciones de flecha para definir un método de ciclo de vida (p. ej. created: () => this.fetchTodos()
). La razón es que las funciones de flecha vinculan al contexto padre, así que this
no será la instancia de componente como usted espere y this.fetchTodos
será undefined.
# beforeCreate
Tipo:
Function
Detalles:
Llamado sincrónicamente inmediatamente después de que la instancia se haya inicializada, antes la observación de dato y la configuración de eventos/observadores.
Vea también: Diagrama de Ciclo de Vida
# created
Tipo:
Function
Detalles:
LLamado sincrónicamente después de que la instancia se haya creada. En esta fase, la instancia ya ha terminado procesar las opciones, lo que significa que las siguientes se han establecidas: observación de dato, propiedades computadas, métodos, callbacks de observación/evento. Sin embargo, la fase de montaje no se ha empezada, y la propiedad
$el
no será disponible todavía.Vea también: Diagrama de Ciclo de Vida
# beforeMount
Tipo:
Function
Detalles:
Llamado justo antes de que se empiece el montaje: la función
render
está a punto de ser llamada por la primera vez.Este hook no se llama durante la renderización del lado de servidor.
Vea también: Diagrama de Ciclo de Vida
# mounted
Tipo:
Function
Detalles:
Llamado después de que la instancia se haya montada, dónde el elemento pasado a
app.mount
esté reemplazado por la recién creadavm.$el
. Si la instancia raíz es montada a un elemento en el documento,vm.$el
también será en el documento cuandomounted
esté llamado.Note que
mounted
no garantiza que todos componentes hijos también se han montados. Si quiere esperar hasta que la vista entera se haya rerenderizada, puede utilizar vm.$nextTick en vez demounted
:mounted() { this.$nextTick(function () { // El código que solo se ejecute después de // que la vista entera se haya rerenderizada }) }
1
2
3
4
5
6Este hook no se llama durante la renderización del lado de servidor.
Vea también: Diagrama de Ciclo de Vida
# beforeUpdate
Tipo:
Function
Detalles:
Llamado cuando se cambie el dato, antes de que el DOM sea parcheado. Este es un buen lugar para acceder el DOM existente antes de una actualización, p. ej. eliminar escuchadores de evento agregados manualmente.
Este hook no se llama durante la renderización del lado de servidor. Porque sólo la renderización inicial es realizada del lado de servidor.
Vea también: Diagrama de Ciclo de Vida
# updated
Tipo:
Function
Detalles:
Llamado después de que un cambio de dato provoque que el DOM virtual sea rerenderizado y parcheado.
El DOM del componente se habrá actualizado cuando este hook sea llamado, así que puede realizar operaciones que dependen del DOM aquí. Sin embargo, en la mayoría de casos debería evitar cambiar el estado dentro del hook. Para reaccionar a cambios de estado, es usualmente mejor utilizar una propiedad computada o observador en su lugar.
Note que
updated
no garantiza que todos componentes hijos también se han rerenderizados. Si quiere esperar hasta que la vista entera se haya rerenderizada, puede utilizar vm.$nextTick en vez deupdated
:updated() { this.$nextTick(function () { // El código que solo se ejecute después de // que la vista entera se haya rerenderizada }) }
1
2
3
4
5
6Este hook no se llama durante la renderización del lado de servidor.
Vea también: Diagrama de Ciclo de Vida
# activated
Tipo:
Function
Detalles:
Llamado cuando un componente de keep-alive sea activado.
Este hook no se llama durante la renderización del lado de servidor.
Vea también:
# deactivated
Tipo:
Function
Detalles:
Llamado cuando un componente de keep-alive sea desactivado.
Este hook no se llama durante la renderización del lado de servidor.
Vea también:
# beforeUnmount
Tipo:
Function
Detalles:
Llamado justo antes de que una instancia de componente sea desmontada. En esta fase la instancia es todavía funcional.
Este hook no se llama durante la renderización del lado de servidor.
Vea también: Diagrama de Ciclo de Vida
# unmounted
Tipo:
Function
Detalles:
Llamado después de que una instancia de componente se haya desmontada. Cuando este hook sea llamado, todas directivas de la instancia del componente se hayan desvinculadas, todos escuchadores de evento se hayan eliminados, y todas instancias de componentes hijos también se hayan desmontadas.
Este hook no se llama durante la renderización del lado de servidor.
Vea también: Diagrama de Ciclo de Vida
# errorCaptured
Tipo:
(err: Error, instance: Component, info: string) => ?boolean
Detalles:
Llamado cuando un error de cualquier componente secundario sea capturado. El hook recibe tres argumentos: el error, la instancia de componente que disparó el error, y una cadena de caracteres que contiene información sobre dónde el error fuera capturado. El hook puede retornar
false
para dejar el error de propagarse más lejos.TIP
Puede modificar el estado de componente en este hook, Sin embargo, es importante tener declaraciones condicionales (conditionals) en su plantilla o función render que puedan saltarse otros contenidos cuando un error haya sido capturado, de lo contrario el componente puede entrar en un bucle infinito de renderización.
Reglas de Propagación de Error
Por defecto, todos errores son todavía enviados al manejador global
config.errorHandler
si está definido, así que estos errores pueden todavía ser entregados a un servicio de análisis en un solo lugar.Si múltiples hooks de
errorCaptured
existen en la cadena de herencia o en la cadena de padres de un componente, todos ellos serán invocados sobre el mismo error.Si el hook
errorCaptured
mismo lanza un error, tanto este error como el error original capturado son enviados al manejador globalconfig.errorHandler
.Un hook
errorCaptured
puede retornarfalse
para dejar el error de propagarse más lejos. Esto es escencialmente decir que "este error ha sido manejado y debe ser ignorado." Prevendrá cualquieres hooks adicionales deerrorCaptured
o el manejador globalconfig.errorHandler
de ser invocados sobre este error.
# renderTracked
Tipo:
(e: DebuggerEvent) => void
Detalles:
Llamado cuando la rerenderización de DOM virtual está rastreada. El hook recibe un
debugger event
(evento de depuración) como un argumento. Este evento le informa qué operación rastreó el componente y el objeto de destino y clave de la operación.Uso:
<div id="app"> <button v-on:click="addToCart">Añadir al carrito</button> <p>Carrito({{ cart }})</p> </div>
1
2
3
4const app = createApp({ data() { return { cart: 0 } }, renderTracked({ key, target, type }) { console.log({ key, target, type }) /* Este será registrado cuando el componente sea renderizado por la primera vez: { key: "cart", target: { cart: 0 }, type: "get" } */ }, methods: { addToCart() { this.cart += 1 } } }) app.mount('#app')
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# renderTriggered
Tipo:
(e: DebuggerEvent) => void
Detalles:
Llamado cuando la rerenderización de DOM virtual está rastreada. Similar a
renderTracked
, recibe undebugger event
como un argumento. Este evento le informa qué operación disparó la rerenderización y el objeto de destino y clave de la operación.Uso:
<div id="app"> <button v-on:click="addToCart">Añadir al carrito</button> <p>Carrito({{ cart }})</p> </div>
1
2
3
4const app = createApp({ data() { return { cart: 0 } }, renderTriggered({ key, target, type }) { console.log({ key, target, type }) }, methods: { addToCart() { this.cart += 1 /* Este causará la llamada de renderTriggered { key: "cart", target: { cart: 1 }, type: "set" } */ } } }) app.mount('#app')
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
← DOM Bienes (Assets) →