onMount ·
onDestroy ·
beforeUpdate ·
afterUpdate ·
tick ·
setContext / getContext
Lifecycle-Funktionen ermöglichen es Ihnen, Code zu bestimmten Zeitpunkten im Lebenszyklus einer Komponente auszuführen – beim Mounten, bei Updates und beim Zerstören. Sie sind essenziell für API-Aufrufe, DOM-Manipulationen und die Ressourcenverwaltung.
onMount wird einmal nach dem ersten Rendering der Komponente aufgerufen – ideal für API-Aufrufe, DOM-Manipulationen oder das Setzen von Intervallen. Die zurückgegebene Funktion wird beim Zerstören der Komponente ausgeführt.
| Merkmal | Beschreibung |
|---|---|
| Wird nur im Browser ausgeführt | Keine Ausführung auf dem Server (SSR) |
| Cleanup-Funktion | Optionaler Rückgabewert für Aufräumarbeiten |
| Asynchrone Ausführung | onMount kann async sein (z.B. für API-Calls) |
| Einmalige Ausführung | Wird nur einmal pro Komponenteninstanz aufgerufen |
onDestroy wird direkt vor dem Zerstören der Komponente aufgerufen – analog zur Cleanup-Funktion von onMount, aber auch verfügbar, wenn onMount nicht verwendet wird.
onDestroy kann auch ohne onMount verwendet werden – z.B. wenn Sie einen Event-Listener außerhalb der Komponente registrieren müssen.
beforeUpdate wird unmittelbar vor jeder Aktualisierung des DOMs aufgerufen – afterUpdate direkt danach. Diese Hooks ermöglichen es, auf DOM-Änderungen zu reagieren.
| Merkmal | beforeUpdate | afterUpdate |
|---|---|---|
| Zeitpunkt | Vor DOM-Update | Nach DOM-Update |
| Zugriff auf DOM | Alter Zustand | Aktualisierter Zustand |
| Ausführungshäufigkeit | Bei jedem Update | Bei jedem Update |
| Vorsicht | Kann Endlosschleifen verursachen | Kann Endlosschleifen verursachen |
beforeUpdate und afterUpdate sollten nicht für Zustandsänderungen verwendet werden, die zu erneuten Updates führen – das kann Endlosschleifen verursachen.
tick() ist eine asynchrone Funktion, die einen Promise zurückgibt, der aufgelöst wird, sobald alle ausstehenden DOM-Updates abgeschlossen sind – ähnlich wie nextTick in Vue oder setTimeout(..., 0).
tick() ist besonders nützlich, wenn Sie nach einer Zustandsänderung auf das aktualisierte DOM zugreifen müssen – z.B. für Fokus, Scrollpositionen oder Animationen.
Context ermöglicht die Weitergabe von Daten über mehrere Komponentenebenen hinweg – ohne Props durch jede Zwischenkomponente zu leiten (Prop Drilling).
onMount
onDestroy
beforeUpdate
afterUpdate
tick
Context
onMount(() => { ... }) ·
await tick() ·
setContext('key', value)