Komponenten

Vue.js Dokumentation

Ü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.

Vue.js Dokumentation

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.

Vue.js Dokumentation

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.

Vue.js Dokumentation

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.

Properties

Untenstehend 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: