Ciclo de vida en Vue JS: guía completa de los hooks

Ciclo de vida en Vue JS: guía completa de los hooks

Vue.js es un framework de JavaScript muy popular para crear aplicaciones web. Está pensado para ser fácil de usar y de entender, y por eso gusta tanto a quien empieza como a quien lleva años programando. Uno de sus aspectos más importantes es el sistema de hooks del ciclo de vida, que permite controlar cómo se comportan los componentes cuando se montan, se actualizan y se desmontan del árbol de componentes.

¿Qué es un hook del ciclo de vida de Vue.js?

Un hook del ciclo de vida de Vue.js es una función que se llama en distintos momentos: cuando el componente se crea, cuando se actualiza y cuando se elimina. Los hooks permiten definir acciones concretas en cada etapa de la vida del componente, como inicializar variables, llamar a métodos asíncronos o liberar recursos.

Los hooks del ciclo de vida más usados

Vue.js tiene varios hooks del ciclo de vida, pero los más habituales son estos:

  • setup: setup() se ejecuta antes que todos los demás hooks y sirve de punto de entrada para usar la Composition API en un componente, sin paso de compilación o para integrar código basado en la Composition API dentro de un componente con Options API.
  • created: se llama después de crear el componente e inicializar sus propiedades
  • mounted: se llama cuando el componente se monta en la página y ha terminado de renderizarse
  • updated: se llama cuando el componente se actualiza con datos nuevos
  • destroyed: se llama cuando el componente se destruye y se liberan sus recursos

Cómo usar los hooks del ciclo de vida

Usar los hooks del ciclo de vida en Vue.js es sencillo: basta con añadir un método al objeto de opciones de tu componente. Por ejemplo, para definir una acción que se ejecute cuando el componente se monta, añade este método al objeto de opciones:

javascript
mounted () {
  // código que se ejecuta cuando el componente se monta
}

Ejemplo de uso de los hooks del ciclo de vida

Imagina un componente que muestra una lista de artículos obtenida de una API. Puedes apoyarte en los hooks del ciclo de vida para lo siguiente:

  • En el hook created, llamar a la API para recuperar los artículos
  • En el hook mounted, mostrar los artículos en la página con v-for
  • En el hook updated, comprobar si los datos han cambiado y volver a llamar a la API si hace falta
  • En el hook destroyed, liberar los recursos, como las suscripciones a eventos, para evitar fugas de memoria.

Este es un ejemplo concreto que usa los hooks del ciclo de vida para mostrar una lista de artículos:

javascript
<template>
  <div>
    <ul>
      <li v-for="article in articles" :key="article.id">{{ article.title }}</li>
    </ul>
  </div>
</template>

<script>
export default {
  data () {
    return {
      articles: []
    }
  },
  created () {
    this.fetchData()
  },
  methods: {
    fetchData () {
      // llama a la API para recuperar los artículos
    }
  },
  updated () {
    if (this.articles.length === 0) {
      this.fetchData()
    }
  },
  destroyed () {
    // limpia aquí los recursos
  }
}
</script>

Preguntas frecuentes sobre los hooks del ciclo de vida de Vue JS

¿En qué orden se ejecutan los hooks del ciclo de vida de Vue JS?

En Vue 3, el orden de ejecución es este: beforeCreate -> created -> beforeMount -> mounted -> beforeUpdate -> updated -> beforeDestroy -> destroyed.

¿Puedo usar varios hooks del ciclo de vida en un mismo componente?

Sí, puedes usar varios hooks del ciclo de vida en un mismo componente. Resulta útil cuando quieres vigilar y controlar el comportamiento de un componente en distintos momentos de su vida.

¿Hay hooks del ciclo de vida que no se puedan combinar?

No, no hay ninguna restricción para combinar hooks del ciclo de vida. Eso sí, algunos solo tienen sentido en determinadas etapas: beforeDestroy, por ejemplo, solo puede usarse una vez creado el componente y antes de que se destruya.

Conclusión

Los hooks del ciclo de vida de Vue.js son una herramienta potente para controlar cómo responden los componentes a los distintos eventos. Con ellos puedes ejecutar acciones concretas en cada momento de la vida del componente: inicializar variables, llamar a métodos asíncronos o liberar recursos. Prueba los distintos hooks del ciclo de vida de Vue.js para afinar tu forma de desarrollar.

JavaScriptVue.js

Damien Flandrin Desarrollador web desde 2010, creador de Gekkode y de Email Impact. Cada artículo se prueba en un proyecto real antes de publicarse. Contacto
Newsletter

Las nuevas pruebas, tutoriales y proyectos, por correo.

Pruebas reproducibles, código versionado, resultados fechados. Nunca spam.