Zusammenfassung
In dieser Lektion hast du gelernt:
- Vue rendert die Vorlage nur dann neu, wenn sich reaktive Daten ändern. Eine gewöhnliche Variable kann sich ändern, aber die Seite zeigt es nicht.
ref(), importiert mitimport { ref } from "vue";, erzeugt reaktiven State:const anzahl = ref(0);. Refs sind immerconst: Die Ref bleibt dieselbe, ihr Wert ändert sich.- Im Skript ist der Wert
anzahl.value. In der Vorlage entpackt Vue Refs, dort heißt es nuranzahl.anzahl++im Skript endet mitTypeError: Assignment to constant variable., und{{ anzahl.value }}in der Vorlage zeigt nichts an. @clickist die Kurzform vonv-on:click. Sein Wert ist der Name einer Funktion, ein Aufruf mit Argumenten wiezurBestellungHinzufuegen('Espresso'), den Vue beim Klick ausführt, nicht sofort, oder eine kurze Anweisung wieanzahl++. Alles Längere gehört in eine Funktion im Skript.- Ein Handler, der ohne Klammern angegeben ist, bekommt das Ereignisobjekt. Wenn du eigene Argumente übergibst, heißt das Ereignisobjekt
$event. @funktioniert mit jedem Ereignis:@inputundevent.target.valuefürs Tippen (mit:value, um eine Ref in das Feld zu legen),@keydown.enterfür die Eingabetaste sowie@mouseoverund@mouseleavefür die Maus.- Eine Ref kann ein Array oder ein Objekt enthalten.
push(),pop(),splice()und Änderungen von Eigenschaften wiebestellung.value.notiz = "Ohne Zucker"aktualisieren alle die Seite, und ebenso ein neues Array für.value, zum Beispiel ausfilter().
In der nächsten Lektion, Bedingungen und Listen, zeigst du Teile der Seite nur, wenn eine Bedingung gilt, und erzeugst aus einem Array eine Liste mit einem Element für jeden Eintrag.
Aber vorher eine kleine Übung: eine Warteliste für die Tische des Cafés. In App.vue steht nur die Überschrift, den Rest schreibst du selbst.
So schreibst du es:
Anweisungen
- 1
Füge unter der Überschrift ein Textfeld für den Namen eines Gastes hinzu. Speichere, was getippt wird, in einer Ref
name(mit@input), und binde das Feld mit:valuedaran. Wird im Feld die Eingabetaste gedrückt, füge den Namen am Ende einer Refwartelistehinzu, die ein Array enthält, und leere das Feld. Zeige die Liste unter dem Feld in einem Absatz mit der Klassewartelistean:Warteliste: Anna, Max. - 2
Füge unter der Liste einen Button „Nächsten platzieren“ hinzu. Er nimmt den ersten Namen von der Warteliste (mit
splice(0, 1)) und zeigt ihn in einem Absatz mit der Klasseplatziertan:Platziert: Anna. Wartet niemand, tut der Button nichts.