Computed und Watch in der Composition API
computed() für abgeleiteten State, watch() und watchEffect() für Seiteneffekte.
Computed und Watch in der Composition API ist eine kostenlose Vue Academy-Lektion auf CoddyKit. Dies ist Lektion 4 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.
Zustand ableiten und auf Änderungen reagieren
Reaktiver Zustand ist nur die halbe Geschichte. Sie müssen daraus auch neue Werte ableiten und auf Änderungen reagieren. Die Composition API bietet dafür computed, watch und watchEffect.
computed für abgeleitete Werte
computed() nimmt eine Getter-Funktion entgegen und gibt einen Ref zurück, dessen Wert aus anderem reaktivem Zustand abgeleitet wird. In JavaScript greifen Sie mit .value darauf zu; im Template wird er automatisch entpackt.
import { ref, computed } from 'vue'
const count = ref(2)
const doubled = computed(() => count.value * 2)
console.log(doubled.value) // 4computed wird verzögert ausgewertet und gecacht
Ein computed wird nur dann neu berechnet, wenn sich eine seiner reaktiven Abhängigkeiten ändert. Wenn Sie es zehnmal lesen, ohne dass sich etwas ändert, wird der Getter einmal ausgeführt und das zwischengespeicherte Ergebnis wiederverwendet.
Dadurch eignet sich computed ideal für aufwendige Ableitungen.
computed wird automatisch aktualisiert
Ändern Sie eine Abhängigkeit, wird computed beim nächsten Lesen aktualisiert. Sie müssen es nie manuell aufrufen.
const count = ref(2)
const doubled = computed(() => count.value * 2)
count.value = 5
console.log(doubled.value) // 10watch für Seiteneffekte
watch() überwacht eine reaktive Quelle und führt bei einer Änderung einen Callback aus. Der Callback erhält den neuen Wert und den alten Wert.
import { ref, watch } from 'vue'
const count = ref(0)
watch(count, (newVal, oldVal) => {
console.log('changed from', oldVal, 'to', newVal)
})watch ist standardmäßig lazy
Im Gegensatz zu computed führt watch seinen Callback nicht sofort aus. Es wartet auf die erste Änderung. Verwenden Sie es für Seiteneffekte wie Protokollierung, das Abrufen von Daten oder das Speichern im Speicher.
Mehrere Quellen mit watch überwachen
Übergeben Sie ein Array von Quellen, um mehrere Werte gleichzeitig zu überwachen. Der Callback erhält Arrays mit den neuen und alten Werten.
watch([count, name], ([newCount, newName], [oldCount, oldName]) => {
console.log(newCount, newName)
})Einen Getter überwachen
Um eine Eigenschaft eines reaktiven Objekts zu überwachen, übergeben Sie eine Getter-Funktion. Wenn Sie das Objekt direkt überwachen, wird der Callback nur bei tiefen Änderungen ausgelöst, was überraschend sein kann.
const state = reactive({ count: 0 })
watch(() => state.count, (newVal) => {
console.log('count is', newVal)
})watchEffect: sofortige Ausführung und automatische Nachverfolgung
watchEffect() führt seine Funktion sofort aus und wiederholt sie, sobald sich ein darin verwendeter reaktiver Wert ändert. Sie müssen keine Abhängigkeiten auflisten — sie werden automatisch erfasst.
import { ref, watchEffect } from 'vue'
const count = ref(0)
watchEffect(() => {
console.log('count is', count.value)
})
// logs immediately, then on every changewatch im Vergleich zu watchEffect
watch: explizite Quelle, lazy, stellt alte und neue Werte bereit.watchEffect: verfolgt Abhängigkeiten automatisch, wird sofort ausgeführt und bietet keinen Zugriff auf den alten Wert.
Verwenden Sie watch, wenn Sie den vorherigen Wert benötigen oder eine präzise Kontrolle wünschen. Verwenden Sie watchEffect für schnelle reaktive Seiteneffekte.
computed vs watch
Verwenden Sie computed, wenn Sie einen neuen abgeleiteten Wert benötigen. Verwenden Sie watch oder watchEffect, wenn Sie als Reaktion auf eine Änderung eine Aktion ausführen möchten. Verwenden Sie watch nicht, um einen Wert neu zu berechnen – dafür ist computed vorgesehen.
Schnelltest
Wählen Sie den passenden reaktiven Helfer.
Zusammenfassung
Sie wissen nun, wie Sie Werte ableiten und auf Änderungen reagieren:
computederstellt verzögert berechnete und zwischengespeicherte abgeleitete Werte.watchreagiert auf eine bestimmte Quelle und liefert neue und alte Werte; die Ausführung erfolgt verzögert.watchEffectwird sofort ausgeführt und erfasst Abhängigkeiten automatisch.- Verwenden Sie computed für Werte und watch/watchEffect für Seiteneffekte.
Häufig gestellte Fragen
Ist die Lektion „Computed und Watch in der Composition API“ kostenlos?
Ja — der vollständige Text von „Computed und Watch in der Composition API“ 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 „Computed und Watch in der Composition API“?
computed() für abgeleiteten State, watch() und watchEffect() für Seiteneffekte. 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 4 von 4.
Wie lange dauert die Lektion „Computed und Watch in der Composition API“?
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
- Warum die Composition API?
- setup()-Funktion und reaktive Variablen
- ref vs. reactive: Wann Sie welches verwenden
- Computed und Watch in der Composition API