Lifecycle hooks
Lifecycle Hooks
Lesdoelen
- Begrijpen wat de levenscyclus van een Vue-component is.
- Inzicht krijgen in het concept van "mounten".
- Leren hoe je lifecycle hooks gebruikt in Vue 3 met de Composition API en
<script setup>. - Een eenvoudige timer-component bouwen als oefening.
Tijdsindeling
-
Introductie: Wat is de levenscyclus van een Vue-component? (10 minuten)
- Uitleg van mounten en de componentlevenscyclus.
- Visualisatie en eenvoudige metafoor.
-
Uitleg van Lifecycle Hooks (10 minuten)
- Wat zijn lifecycle hooks en hoe gebruik je ze in Vue 3?
- Focus op
onMountedenonUnmounted.
-
Codevoorbeeld: Timer-component (10 minuten)
- Samen bouwen van een eenvoudige timer met
onMountedenonUnmountedin<script setup>.
- Samen bouwen van een eenvoudige timer met
-
Hands-on Oefening: Zelf aan de slag (10 minuten)
- Een aangepaste versie van de timer bouwen met extra functionaliteiten.
Lesinhoud
1. Introductie: Wat is de levenscyclus van een Vue-component?
Elke Vue-component doorloopt een levenscyclus:
- Aanmaken: Vue bereidt je component voor en verzamelt de data en methodes.
- Mounten: Je component wordt toegevoegd aan de webpagina (DOM) en zichtbaar voor de gebruiker.
- Bijwerken: Als de data in je component verandert, wordt de DOM opnieuw gerenderd.
- Verwijderen: Je component wordt opgeruimd en uit de DOM verwijderd.
Wat betekent "mounten"?
- Mounten is het moment waarop Vue jouw component "plakt" in een specifiek HTML-element op de pagina.
- Voorbeeld: Een lege container
<div id="app"></div>wordt gevuld met de inhoud van jouw component.
Visualisatie:
- Voor het mounten:
<div id="app"></div> - Na het mounten door Vue:
<div id="app">
<h1>Hallo, Vue!</h1>
</div>
2. Uitleg van Lifecycle Hooks
Wat zijn lifecycle hooks?
- Lifecycle hooks zijn speciale functies die Vue automatisch aanroept op bepaalde momenten in de levenscyclus van een component.
- In Vue 3 gebruik je lifecycle hooks binnen de Composition API en
<script setup>.
Belangrijke hooks voor beginners:
-
onMounted- Wordt uitgevoerd zodra het component gemount is.
- Perfect voor API-calls, timers of DOM-interacties.
-
onUnmounted- Wordt uitgevoerd zodra het component wordt verwijderd.
- Handig voor het opruimen van resources zoals timers of event listeners.
3. Codevoorbeeld: Timer-component
Samen bouwen we een eenvoudige timer-component die:
- De tijd elke seconde bijhoudt.
- De timer start bij het mounten (
onMounted). - De timer stopt bij het verwijderen (
onUnmounted).
Code:
<template>
<div>
<h2>Teller: {{ counter }}</h2>
<button @click="resetCounter">Reset</button>
<button @click="pauseCounter">Pause</button>
</div>
</template>
<script setup>
import { ref, onMounted, onUnmounted } from 'vue';
// Reactieve teller
const counter = ref(0);
let intervalId = null;
// Start de teller
const startCounter = () => {
intervalId = setInterval(() => {
counter.value++;
}, 1000);
};
// Reset de teller
const resetCounter = () => {
counter.value = 0;
};
// Pauzeer de teller
const pauseCounter = () => {
clearInterval(intervalId);
};
// Start de timer bij het mounten
onMounted(() => {
startCounter();
});
// Stop de timer bij het verwijderen
onUnmounted(() => {
clearInterval(intervalId);
});
</script>