In dieser Aufgabe lernst du selbstständig, was `Computed Properties` in Vue sind und wie du sie anwenden kannst.
Aufgabenstellung
Erstelle eine einfache Wetterstation, die eine Temperatur in Celsius, Fahrenheit und Kelvin anzeigt. Zusätzlich soll angezeigt werden, ob der Gefrierpunkt (0°C) unterschritten wurde.
Lösungsschritte
Verwende folgenden Vue Playground als Startpunkt für deine Lösung:
Es wird eine celsius Variable definiert, welche im <template> Bereich angezeigt wird.
Es gibt zwei Buttons, welche die Temperatur erhöhen resp. reduzieren sollen. Die Buttons rufen mit einem @click Event eine change Funktion auf.
Du wirst schnell merken, dass die beiden Buttons noch nicht funktionieren, weil die change Funktion fehlt.
Temperatur in Fahrenheit anzeigen
Als Nächstes soll die Temperatur in Fahrenheit angezeigt werden.
Die offensichtlichste Lösung für dieses Problem ist es, eine fahrenheit Variable zu erstellen und deren Wert in der change Funktion ebenfalls zu verändern. Doch dies wird schnell umständlich, wenn wir später noch zusätzliche Informationen ergänzen möchten.
Vue bietet dir mit Computed Properties eine deutlich einfachere Möglichkeit, neue Werte auf Basis bestehender Werte zu berechnen.
Computed Properties
Eine Computed Property besteht aus einer Funktion, die einen Wert zurückgibt. In dieser Funktion können beliebige ref Variablen verwendet werden. Jedes Mal, wenn sich eine dieser Variablen verändert, führt Vue automatisch deine Funktion erneut aus, was einen neuen Rückgabewert produziert.
Eine Computed Property wird in Vue wie folgt definiert:
<script setup>
// ⚠ Wichtig: `computed` muss hier importiert werden
import { ref, computed } from 'vue'
const a = ref(1)
const b = ref(2)
// Sobald a oder b sich verändern, wird `result` neu berechnet.
const result = computed(() => {
return a.value + b.value
})
</script>
<template>
Das Resultat ist {{ result }}
</template>