onMounted und onBeforeMount
Auf das DOM in onMounted zugreifen, warum onBeforeMount nur selten direkt verwendet werden muss.
onMounted und onBeforeMount ist eine kostenlose Vue Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Vue Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Vue Academy-Kurs umfasst insgesamt 4 Lektionen.
Hooks rund um das Mounting
Die Mounting-Phase verfügt über zwei Hooks: onBeforeMount wird direkt vor der Erstellung des DOMs aufgerufen, und onMounted direkt nach dem Einfügen. Sie sehen ähnlich aus, dienen aber ganz unterschiedlichen Zwecken.
onMounted: Das DOM ist bereit
Wenn onMounted ausgeführt wird, wurde das Template der Komponente gerendert und in die Seite eingefügt. Template-Refs verweisen auf echte Elemente. Daher gehört die DOM-Arbeit an diese Stelle.
<script setup>
import { ref, onMounted } from 'vue'
const box = ref(null)
onMounted(() => {
console.log(box.value.offsetWidth)
})
</script>Anwendungsfall: Ein Diagramm initialisieren
Bibliotheken, die in ein DOM-Element zeichnen, benötigen dieses Element zunächst. Initialisieren Sie sie in onMounted und übergeben Sie das ref-Element.
<script setup>
import { ref, onMounted } from 'vue'
const canvas = ref(null)
onMounted(() => {
const ctx = canvas.value.getContext('2d')
// draw chart with ctx
})
</script>Anwendungsfall: DOM-Messungen
Zum Auslesen von Größen, Positionen oder Scroll-Offsets benötigen Sie ein echtes DOM. onMounted ist der früheste sichere Zeitpunkt, um ein Element zu vermessen.
onMounted(() => {
const rect = box.value.getBoundingClientRect()
console.log(rect.height)
})Anwendungsfall: Erster Datenabruf
Daten abzurufen, sobald die Komponente angezeigt wird, ist eine klassische Aufgabe für onMounted. Speichern Sie das Ergebnis in einer ref, damit das Template aktualisiert wird, sobald die Daten eintreffen.
<script setup>
import { ref, onMounted } from 'vue'
const posts = ref([])
onMounted(async () => {
const res = await fetch('/api/posts')
posts.value = await res.json()
})
</script>onMounted wird einmal ausgeführt
onMounted wird pro Komponenteninstanz genau einmal aufgerufen. Wird die Komponente ausgehängt und später neu erstellt, führt die neue Instanz ihr eigenes onMounted aus.
onBeforeMount: Direkt vor dem Einfügen
onBeforeMount wird nach dem Setup, aber vor der Erstellung des DOMs ausgeführt. Der reaktive Zustand ist vorhanden, Template-Refs sind jedoch noch null, da noch nichts gerendert wurde.
<script setup>
import { onBeforeMount } from 'vue'
onBeforeMount(() => {
console.log('about to render')
})
</script>Warum onBeforeMount selten benötigt wird
Die meisten Setup-Aufgaben können direkt in <script setup> erledigt werden, das ohnehin vor dem Mounting ausgeführt wird. Alles, was das DOM betrifft, muss dagegen auf onMounted warten. Daher gibt es für onBeforeMount nur wenige praktische Einsatzmöglichkeiten.
Ein häufiger Fehler
Wenn Sie innerhalb des Setups oder in onBeforeMount auf eine Template-Ref zugreifen, erhalten Sie null. Das Element existiert erst, wenn das Mounting abgeschlossen ist. Verschieben Sie den DOM-Zugriff immer nach onMounted.
<script setup>
import { ref } from 'vue'
const input = ref(null)
console.log(input.value) // null - too early!
</script>Mehrere Hooks registrieren
Sie können onMounted mehr als einmal aufrufen; alle Callbacks werden der Reihe nach ausgeführt. Deshalb können Composables unabhängig voneinander jeweils ihr eigenes onMounted registrieren.
onMounted(() => console.log('first'))
onMounted(() => console.log('second'))Zwischen den beiden Hooks wählen
- onMounted: DOM verfügbar — Diagramminitialisierung, Messungen, Fokus und Datenabrufe.
- onBeforeMount: Hook vor dem Rendern, kein DOM, wird nur selten benötigt.
Kurzer Test
Testen Sie Ihr Wissen über Mounting-Hooks.
Zusammenfassung
Zusammenfassung der Mounting-Hooks:
onMountedwird nach dem Einfügen des DOMs ausgeführt — verwenden Sie ihn für Diagramminitialisierung, Messungen, Fokus und erste Datenabrufe.- Er wird einmal pro Instanz ausgeführt und kann mehrfach registriert werden.
onBeforeMountwird vor dem Rendern ohne DOM-Zugriff ausgeführt und wird nur selten benötigt.
Häufig gestellte Fragen
Ist die Lektion „onMounted und onBeforeMount“ kostenlos?
Ja — der vollständige Text von „onMounted und onBeforeMount“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Vue Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Vue Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „onMounted und onBeforeMount“?
Auf das DOM in onMounted zugreifen, warum onBeforeMount nur selten direkt verwendet werden muss. Du übst Vue Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Vue Academy zu starten?
Keine Vorkenntnisse erforderlich. Vue Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „onMounted und onBeforeMount“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Vue Academy-Lektion Code schreiben und ausführen?
Ja. Jede Vue Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Überblick über die Lifecycle-Phasen
- onMounted und onBeforeMount
- onUpdated und onBeforeUpdate
- onUnmounted und Cleanup-Muster