Sobes.tech
Middle

Vertel over de levenscyclus van een component in Vue.js.

sobes.tech AI

Antwoord van AI

De levenscyclus van een Vue.js-component is een reeks hooks die worden aangeroepen in verschillende fasen van zijn bestaan: van creatie tot vernietiging.

Belangrijkste hooks:

  1. Creatie:

    • beforeCreate: De component is gemaakt, maar gegevens en methoden zijn nog niet geïnitialiseerd.
    • created: De component is gemaakt, gegevens en methoden zijn geïnitialiseerd, maar de DOM is nog niet gerenderd.
  2. Mounting:

    • beforeMount: De template is gecompileerd, maar de component is nog niet in de DOM geplaatst.
    • mounted: De component is in de DOM geplaatst, toegang tot DOM-elementen via $el is mogelijk.
  3. Bijwerken:

    • beforeUpdate: De gegevens van de component zijn gewijzigd, maar de DOM is nog niet bijgewerkt.
    • updated: De DOM is bijgewerkt na de gegevenswijziging.
  4. Ontmanteling:

    • beforeUnmount: De component wordt uit de DOM verwijderd. Hier kunnen timers, eventlisteners, etc. worden schoongemaakt.
    • unmounted: De component is uit de DOM verwijderd.

Naast de hoofd-hooks zijn er hooks voor debugging (Debug) en foutafhandeling (Error Handling):

  • renderTracked: Volgt reactieve afhankelijkheden tijdens rendering.
  • renderTriggered: Wordt aangeroepen wanneer de component opnieuw moet worden gerenderd vanwege een wijziging in de reactieve toestand.
  • errorCaptured: Vangt fouten op die in child-componenten optreden.
// Voorbeeld van gebruik van hooks
export default {
  data() {
    return {
      message: 'Hallo Vue!'
    };
  },
  beforeCreate() {
    console.log('beforeCreate: De component is gemaakt, gegevens en methoden zijn nog niet beschikbaar.');
  },
  created() {
    console.log('created: De component is gemaakt, gegevens en methoden zijn beschikbaar.');
    console.log('Bericht:', this.message);
  },
  beforeMount() {
    console.log('beforeMount: De template is gecompileerd.');
  },
  mounted() {
    console.log('mounted: De component is in de DOM geplaatst.');
    console.log('DOM-element:', this.$el);
  },
  beforeUpdate() {
    console.log('beforeUpdate: De gegevens zijn gewijzigd, de DOM is nog niet bijgewerkt.');
  },
  updated() {
    console.log('updated: De DOM is bijgewerkt.');
  },
  beforeUnmount() {
    console.log('beforeUnmount: De component wordt verwijderd.');
  },
  unmounted() {
    console.log('unmounted: De component is uit de DOM verwijderd.');
  }
};