Properties
Übergabe
Props lassen sich über die normale HTML-Syntax an Komponenten übergeben:
Hier gibt es aber einen wichtigen Punkt zu beachten: Mit dieser Syntax werden alle Props immer als String übergeben. Im Beispiel oben wäre fontSize also ein String "16" und blink ein String "false".
Datentyp erhalten
Möchtest du den Datentyp erhalten, muss ein Doppelpunkt : vor die Property gesetzt werden. Vue interpretiert den Wert einer Property so als JS-Code. Dadurch werden Variablen und spezifische Datentypen als Wert unterstützt.
Für Strings kannst du weiterhin die Schreibweise ohne Doppelpunkt verwenden. Für die Schreibweise mit Doppelpunkt musst du zwingend ' verwenden (siehe das color Beispiel):
Variablen übergeben
Möchtest du einer Komponente den Wert einer Variable übergeben, muss die Property mit einem Doppelpunkt : geschrieben werden:
Variablen an native Tags übergeben
Wenn Variablen an native HTML-Tags übergeben werden müssen, musst du die Doppelpunkt : Variante verwenden. Variablen mit {{ }} in einer Property einzufügen ist nicht erlaubt.
Deklaration
In Vue werden Properties über die defineProps Funktion deklariert. Dabei gibt es verschiedene Möglichkeiten für diese Deklaration.
Einfache Deklaration
Die einfachste Deklaration für Properties ist ein Array von Strings, welches die Namen der erlaubten Properties definiert.
Typen-Deklaration
Nicht alle Properties sind Strings. Manchmal möchtest du explizit nur Integer oder Boolean Werte akzeptieren. In diesem Fall musst du der defineProps Funktion ein Objekt von Namen/Typen übergeben.
Vue gibt in der JS-Konsole nun einen Fehler aus, wenn der Typ einer Property nicht stimmt.
Deklaration von optionalen Properties
Manchmal möchtest du eine Property nur optional entgegennehmen. Andere Properties möchtest du als «Pflicht» definieren. Dafür muss die Property-Deklaration um ein weiteres Objekt erweitert werden. Die required Eigenschaft bestimmt, ob eine Property «Pflicht» ist, oder optional.
Deklaration von Standard-Werten
Für optionale Properties kannst du über die default Eigenschaft ein Standard-Wert setzen.
Properties in <script setup> verwenden
<script setup> verwendenDer Rückgabewert von defineProps enthält alle erhaltenen Property-Werte: