Vue Academy · Lektion

Benannte Slots und Default-Slot

Mehrere , , Kurzsyntax mit #name.

Lektion 1 von 413 Schritte

Benannte Slots und Default-Slot ist eine kostenlose Vue Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Vue Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Vue Academy-Kurs umfasst insgesamt 4 Lektionen.

Was Slots sind

Slots ermöglichen es einem Parent, Markup an eine Child-Komponente zu übergeben. Die Child-Komponente bestimmt mithilfe des Elements <slot>, wo dieser Inhalt erscheint. Das ist die Inhaltsverteilung von Vue.

Der Default-Slot

Ein <slot> ohne Namen ist der Default-Slot. Alles, was der Parent zwischen die Komponententags setzt, wird dort eingefügt.

<!-- Card.vue -->
<div class="card">
  <slot></slot>
</div>

Den Default-Slot verwenden

Der Parent verschachtelt den Inhalt einfach innerhalb der Komponententags.

<Card>
  <p>This goes into the default slot</p>
</Card>

Warum Named Slots

Viele Komponenten haben mehrere Einfügepunkte – etwa einen Header, einen Body und einen Footer. Named Slots geben jeder Region einen Bezeichner, sodass der Parent sie einzeln ansprechen kann.

Named Slots deklarieren

Fügen Sie jedem Slot ein name-Attribut hinzu. Eine Komponente kann Named Slots und einen Default-Slot (ohne Namen) kombinieren.

<!-- Card.vue -->
<div class="card">
  <header><slot name="header"></slot></header>
  <main><slot></slot></main>
  <footer><slot name="footer"></slot></footer>
</div>

Named Slots mit v-slot füllen

Umschließen Sie im Parent den Inhalt mit einem <template>, das die Direktive v-slot:name verwendet, um einen Named Slot anzusprechen.

<Card>
  <template v-slot:header>
    <h2>Title</h2>
  </template>
  <template v-slot:footer>
    <button>OK</button>
  </template>
</Card>

Die #-Kurzschreibweise

v-slot: besitzt eine Kurzschreibweise: #. Aus v-slot:header wird also #header. Das ist die idiomatische, kompakte Form.

<Card>
  <template #header>
    <h2>Title</h2>
  </template>
</Card>

Default-Inhalt zwischen den Tags

Inhalt, der direkt zwischen den Komponententags steht (nicht innerhalb eines benannten Templates), wird in den Default-Slot eingefügt. Sie können ihn auch explizit mit #default ansprechen.

<Card>
  <p>Implicit default slot content</p>
  <template #footer>Footer</template>
</Card>

Implizite und explizite Slots kombinieren

Sie können den Default-Inhalt direkt angeben und Named Slots über Templates in derselben Verwendung definieren. Vue leitet jeden Teil anhand seines Namens an die richtige Stelle weiter.

<Card>
  <template #header><h2>Header</h2></template>
  Body text right here
  <template #footer>Footer</template>
</Card>

Reihenfolge beim Rendern

Die Reihenfolge der Slots im Parent spielt keine Rolle – das Template des Childs bestimmt das endgültige Layout. Slot-Inhalt erscheint immer dort, wo das Child den passenden <slot> platziert hat.

Eine praktische Layout-Komponente

Named Slots eignen sich für wiederverwendbare Layout-Grundgerüste. Ein einziges <BaseLayout> kann jede Seite aufnehmen, indem es Slots für Header, Sidebar und Hauptinhalt bereitstellt.

<!-- BaseLayout.vue -->
<header><slot name="header" /></header>
<aside><slot name="sidebar" /></aside>
<main><slot /></main>

Kurzer Test

Was ist die Kurzschreibweise für v-slot:header?

Zusammenfassung

Sie haben gelernt, dass Slots Markup vom Parent an ein Child verteilen. Ein namenloser <slot> ist der Default-Slot; durch das Hinzufügen von name entstehen Named Slots. Der Parent füllt sie mit <template v-slot:name> oder der Kurzschreibweise #name, während das Child-Template die endgültige Platzierung bestimmt.

Kostenlos starten

Lerne HTML mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
42
Lektionen
156

Häufig gestellte Fragen

Ist die Lektion „Benannte Slots und Default-Slot“ kostenlos?

Ja — der vollständige Text von „Benannte Slots und Default-Slot“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Vue Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Vue Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Benannte Slots und Default-Slot“?

Mehrere , , Kurzsyntax mit #name. Du übst Vue Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Vue Academy zu starten?

Keine Vorkenntnisse erforderlich. Vue Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Benannte Slots und Default-Slot“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Vue Academy-Lektion Code schreiben und ausführen?

Ja. Jede Vue Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Benannte Slots und Default-Slot
  2. Scoped Slots: Daten an die übergeordnete Komponente übergeben
  3. Dynamische Slot-Namen
  4. Fallback-Inhalte von Slots und Slots prüfen
← Zurück zu Vue Academy