Komponenten
Überblick
«Components» ermöglichen es, Logik und Darstellung in wiederverwendbare «Bausteine» zu verpacken.
Komponenten in Vue sind wie HTML-Tags zu verwenden. Sie haben einen Tag-Namen sowie optionale Properties (oder «Props»).
Wenn das Tag im Dokument platziert wird, generiert es einen vordefinierten Output:
Man kann sich Komponenten auch als Funktion vorstellen. Die Eingabewerte (Props) generieren einen spezifischen Output:
Eine Komponente erstellen
Neue Komponenten werden üblicherweise in einer eigenen Datei mit der Endung .vue definiert.
Im Vue Playground lassen sich neue Komponenten über das + Symbol neben App.vue erstellen.
Komponenten sollten in PascalCase (erster Buchstabe gross, jedes neue Wort gross) geschrieben werden.
Eine Komponente muss mindestens ein <script setup> oder einem <template> Teil haben.
Template
Der minimale Code für eine sichtbare Komponente ist das <template> Tag mit entsprechendem Inhalt:
Template Syntax
Innerhalb des <template> Bereichs kannst du mit {{ }} Variablen ausgeben.
Logik
Eine Komponente kann in einem <script setup> Tag Logik definieren. Jede definierte Variable oder Funktion ist automatisch im <template>Bereich verfügbar. Der <script> Teil wird üblicherweise vor dem <template> Bereich positioniert.
Logik in Templates
Im <template> Bereich stehen dir einige «Direktiven» zur Verfügung, um Logik in Templates anzuwenden.
v-if
Mit v-if lässt sich ein Element aus dem DOM entfernen. v-if lässt sich mit v-else-if und v-else verketten.
v-for
Mit v-for kann eine Liste von Komponenten generiert werden.
Es ist wichtig, dass bei der Verwendung von v-for immer ein :key Attribut mit einem im Loop eindeutigen Wert (z. B. einer ID) gesetzt wird. Nur so kann Vue die einzelnen Elemente zwischen zwei Render-Aktionen eindeutig identifizieren.
Styles
Jede Komponente kann in einem <style> Tag Styles definieren. Wird das scoped Attribut verwendet, gelten die Styles nur für die aktuelle Komponente. Ansonsten sind sie global.
Properties definieren
Jede Komponente kann über die defineProps Funktion definieren, welche Props sie entgegennimmt.
Die defineProps Funktion wird im <script setup> Teil der Komponente aufgerufen. Sie verlangt ein Array von akzeptierten Props.
Alle definierten Props stehen im <template> Bereich als Variablen zur Verfügung.
Für weitere Details siehe Properties.
PropertiesUntenstehend ein Beispiel, wie eine solche Property an die <HelloWorld> Komponente übergeben wird:
Komponente einbinden
Um eine Komponente zu verwenden, importiere sie mit Angabe des Komponenten-Namen und Pfad zur Vue-Datei: