
Willkommen zu unserem vollständigen Leitfaden zu den Slots von VueJS. VueJS ist ein beliebtes JavaScript-Framework für den Bau von Webanwendungen. Es bringt viele Funktionen mit, die die Entwicklung einfacher und effizienter machen, darunter die Slots.
Slots sind ein mächtiges Mittel, um Inhalte zwischen Komponenten zu teilen. Mit ihnen lassen sich Stücke HTML mühelos wiederverwenden und an anderer Stelle der Anwendung einsetzen.
Was ist ein Slot?
Ein Slot ist ein besonderes Element in einer VueJS-Komponente, das eine Stelle festlegt, an der Inhalt von außen eingesetzt werden kann. Das ist praktisch, wenn du eine Komponente an verschiedenen Stellen deiner Anwendung wiederverwenden willst, jeweils mit anderem Inhalt.
Nimm etwa eine Komponente, die einen Button anzeigt. Willst du sie an mehreren Stellen deiner Anwendung einsetzen, aber jedes Mal mit einer anderen Beschriftung, dann bringt ein Slot genau diesen Inhalt bei jeder Verwendung hinein.
Wie verwendet man Slots?
Um Slots zu nutzen, definierst du zuerst einen Slot in der Hauptkomponente. Dafür schreibst du:
<template>
<div>
<slot></slot>
</div>
</template>Danach verwendest du diese Komponente und legst Inhalt in den definierten Slot:
<my-component>
<p>Contenu injecté</p>
</my-component>Der eingesetzte Inhalt erscheint in der Hauptkomponente an der Stelle des Slots.
Arten von Slots
Je nach Bedarf stehen dir mehrere Arten von Slots zur Verfügung:
Default-Slot
Dieser Slot kommt zum Zug, wenn kein anderer Slot angegeben ist. Definiert wird er schlicht mit <slot></slot>.
<template>
<div>
<slot></slot>
</div>
</template>
Benannter Slot
Damit legst du mehrere Slots in derselben Komponente an und sprichst sie über ihren Namen an. Zum Beispiel:
<template>
<div>
<slot name="header"></slot>
<slot name="footer"></slot>
</div>
</template>
Scoped Slot
Dieser Slot lässt dich Inhalt mit eigenem Gültigkeitsbereich einsetzen. Definiert wird er so:
<template>
<div>
<slot v-bind:text="textProp"></slot>
</div>
</template>
<script>
export default {
data() {
return {
textProp: 'Texte par défaut'
}
}
}
</script>Verwendest du die Komponente mit einem Scoped Slot, kannst du außerdem Eigenschaften durch den Slot hindurchreichen:
<my-component>
<template v-slot:default="slotProps">
{{ slotProps.text }}
</template>
</my-component>Typische Einsatzfälle für Slots
Slots sind in vielen Situationen nützlich, etwa:
- Komponenten mit unterschiedlichen Inhalten wiederverwenden.
- Komponenten mit eigenen Styles und eigenem Verhalten anpassen.
- Themes für Komponenten bauen, die sich an verschiedenen Stellen der Anwendung flexibel einsetzen lassen.
Fazit
Slots sind eine mächtige Funktion von VueJS, mit der sich Inhalte flexibel und effizient zwischen Komponenten teilen lassen. Für unterschiedliche Bedürfnisse gibt es unterschiedliche Arten von Slots, und die Einsatzfälle sind zahlreich.
Wir hoffen, dieser ausführliche Leitfaden zu den Slots von VueJS war dir nützlich und du hast jetzt ein gutes Bild davon, wie sie funktionieren und wozu sie taugen.


