setup ·
ref & reactive ·
computed ·
watch & watchEffect ·
Lifecycle-Hooks ·
Composables
Die Composition API ist der moderne Ansatz in Vue 3, der Logik besser organisiert und wiederverwendbar macht. Sie ist die empfohlene Methode für komplexe Anwendungen und bietet mehr Flexibilität als die Options API.
setup() ist der Einstiegspunkt für die Composition API. ref erzeugt reaktive Referenzen für primitive Werte, reactive für Objekte. <script setup> ist die kompakte Syntax ohne export default.
| Merkmal | ref | reactive |
|---|---|---|
| Verwendung | Primitive Werte (string, number, boolean) | Objekte und Arrays |
| Zugriff | .value (im Template automatisch unwrapped) | Direkt (kein .value) |
| Destrukturierung | Nicht reaktiv (toRefs verwenden) | Nicht reaktiv (toRefs verwenden) |
| Template | Automatisch unwrapped | Direkt verwendbar |
ref ist die flexiblere Wahl – sie funktioniert für alle Datentypen und kann in Komponenten einfach übergeben werden. reactive ist praktisch für Objekte, aber Vorsicht bei Destrukturierung (mit toRefs reaktiv machen).
computed erzeugt einen abgeleiteten reaktiven Wert, der automatisch aktualisiert wird, wenn sich seine Abhängigkeiten ändern. Computed-Werte sind cached – sie werden nur neu berechnet, wenn nötig.
watch verwenden).
watch beobachtet spezifische reaktive Quellen und führt einen Callback aus, wenn sich diese ändern. watchEffect führt den Callback sofort aus und trackt automatisch alle verwendeten reaktiven Abhängigkeiten.
| Merkmal | watch | watchEffect |
|---|---|---|
| Abhängigkeiten | Explizit deklariert | Automatisch getrackt |
| Ausführung | Nur bei Änderung | Sofort und bei Änderung |
| Zugriff auf alte Werte | Ja (newVal, oldVal) | Nein |
| Optionen | immediate, deep, flush | flush |
watchEffect ist ideal für Seiteneffekte, die von mehreren reaktiven Quellen abhängen. watch bietet mehr Kontrolle – besonders wenn Sie Zugriff auf alte Werte benötigen oder deep/immediate Optionen nutzen möchten.
Lifecycle-Hooks in der Composition API werden als Funktionen importiert und innerhalb von setup() oder <script setup> aufgerufen. Sie ersetzen die Options-API-Hooks wie mounted.
| Options API | Composition API | Beschreibung |
|---|---|---|
| beforeCreate | - | Vor Instanzerstellung (setup läuft stattdessen) |
| created | - | Nach Instanzerstellung (setup läuft stattdessen) |
| beforeMount | onBeforeMount | Vor erstem Rendering |
| mounted | onMounted | Nach erstem Rendering |
| beforeUpdate | onBeforeUpdate | Vor DOM-Update |
| updated | onUpdated | Nach DOM-Update |
| beforeUnmount | onBeforeUnmount | Vor Zerstörung |
| unmounted | onUnmounted | Nach Zerstörung |
setup() aufgerufen werden (nicht in async Funktionen). Für asynchrone Logik verwenden Sie onMounted mit async/await.
Composables sind Funktionen, die reaktive Zustände und Logik kapseln und über mehrere Komponenten hinweg wiederverwendbar machen. Sie sind die moderne Alternative zu Mixins und ermöglichen eine bessere Code-Organisation.
use... (z.B. useCounter, useFetch) – das ist eine Konvention und wird von Vue-Erweiterungen unterstützt.
setup
ref
computed
watch
onMounted
use*
const count = ref(0) ·
const double = computed(() => count.value * 2) ·
watch(count, (val) => console.log(val))