Ciclo di vita di Vue.js: la guida completa agli hook

Ciclo di vita di Vue.js: la guida completa agli hook

Vue.js è un framework JavaScript molto diffuso per costruire applicazioni web. È pensato per essere semplice da usare e da capire, ed è questo che lo rende una scelta comune sia per chi comincia sia per chi sviluppa da anni. Uno degli aspetti più importanti di Vue.js è il suo sistema di hook del ciclo di vita, che ti permette di controllare il comportamento dei componenti in risposta a eventi come il mount, l’aggiornamento e lo smontaggio dell’albero dei componenti.

Che cos’è un hook del ciclo di vita di Vue.js?

Un hook del ciclo di vita di Vue.js è una funzione che viene chiamata in momenti precisi: quando il componente viene creato, aggiornato o rimosso. Gli hook ti permettono di definire azioni specifiche a ogni tappa del ciclo di vita del componente, per esempio inizializzare variabili, chiamare metodi asincroni o liberare risorse.

Gli hook del ciclo di vita più usati

In Vue.js gli hook del ciclo di vita sono parecchi, ma i più frequenti sono questi:

  • setup: setup() viene prima di tutti gli altri hook ed è il punto di ingresso della Composition API nei componenti, senza passaggio di build o per innestare del codice basato sulla Composition API dentro un componente scritto con la Options API.
  • created: chiamato dopo la creazione del componente e l’inizializzazione delle sue proprietà
  • mounted: chiamato quando il componente è montato nella pagina e il rendering è concluso
  • updated: chiamato quando il componente viene aggiornato con nuovi dati
  • destroyed: chiamato quando il componente viene distrutto e le sue risorse liberate

Come usare gli hook del ciclo di vita

Usare gli hook del ciclo di vita in Vue.js è semplice: li definisci aggiungendo un metodo all’oggetto options del tuo componente Vue. Per esempio, se vuoi eseguire qualcosa nel momento in cui il componente viene montato, aggiungi questo metodo all’oggetto options del componente:

javascript
mounted () {
  // codice da eseguire quando il componente viene montato
}

Esempio d’uso degli hook del ciclo di vita

Immagina un componente che mostra una lista di articoli presi da un’API. Con gli hook del ciclo di vita puoi fare così:

  • nell’hook created, chiami l’API per recuperare gli articoli
  • nell’hook mounted, mostri gli articoli nella pagina con v-for
  • nell’hook updated, verifichi se i dati sono cambiati e richiami l’API se serve
  • nell’hook destroyed, liberi le risorse come le sottoscrizioni agli eventi, per evitare memory leak.

Ecco un esempio concreto di hook del ciclo di vita usati per mostrare una lista di articoli:

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 () {
      // chiama l'API per recuperare gli articoli
    }
  },
  updated () {
    if (this.articles.length === 0) {
      this.fetchData()
    }
  },
  destroyed () {
    // libera qui le risorse
  }
}
</script>

FAQ sugli hook del ciclo di vita di Vue JS

In quale ordine vengono eseguiti gli hook del ciclo di vita di Vue JS?

In Vue 3 gli hook del ciclo di vita si susseguono in questo ordine: beforeCreate -> created -> beforeMount -> mounted -> beforeUpdate -> updated -> beforeDestroy -> destroyed.

Posso usare più hook del ciclo di vita in uno stesso componente?

Sì, in uno stesso componente puoi usare più hook del ciclo di vita. Torna utile quando vuoi osservare e controllare il comportamento di un componente in momenti diversi della sua vita.

Ci sono hook del ciclo di vita che non possono convivere?

No, non ci sono restrizioni sull’uso combinato dei vari hook del ciclo di vita. Alcuni hook però esistono solo in certe fasi del ciclo: beforeDestroy, per esempio, è disponibile solo dopo la creazione del componente e prima della sua distruzione.

Conclusione

Gli hook del ciclo di vita di Vue.js sono uno strumento potente per chi vuole controllare il comportamento dei propri componenti in risposta ai vari eventi. Usandoli puoi eseguire azioni precise in momenti precisi della vita di un componente: inizializzare variabili, chiamare metodi asincroni, liberare risorse. Vale la pena provarli tutti per capire fino a dove puoi spingerti.

JavaScriptVue.js

Damien Flandrin Sviluppatore web dal 2010, creatore di Gekkode e di Email Impact. Ogni articolo è testato su un progetto reale prima della pubblicazione. Contatti
Newsletter

I nuovi test, tutorial e progetti, via e-mail.

Test riproducibili, codice versionato, risultati datati. Mai spam.