Vue Academy · Lektion

Dynamische Slot-Namen

v-slot:[dynamicName], programmatische Slot-Auswahl, bedingtes Rendern von Slots.

Lektion 3 von 413 Schritte

Dynamische Slot-Namen ist eine kostenlose Vue Academy-Lektion auf CoddyKit. Dies ist Lektion 3 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.

Warum dynamische Slot-Namen

Manchmal steht erst zur Laufzeit fest, welchen Slot Sie füllen möchten – er hängt etwa von einer Prop, einem Zustand oder einer Schleifenvariablen ab. Vue ermöglicht es, einen Slot-Namen mithilfe der Syntax mit eckigen Klammern zu berechnen.

Die Syntax für dynamische Argumente

Setzen Sie einen Ausdruck nach v-slot: in eckige Klammern. Vue wertet ihn aus, um den Namen des Ziel-Slots zu bestimmen.

<MyComponent>
  <template v-slot:[dynamicName]>
    Goes into whatever slot dynamicName equals
  </template>
</MyComponent>

Kurzschreibweise mit eckigen Klammern

Auch die Kurzschreibweise # unterstützt dynamische Argumente.

<MyComponent>
  <template #[dynamicName]>
    Dynamic slot content
  </template>
</MyComponent>

Den Namen aus dem Zustand ableiten

Der Ausdruck in den eckigen Klammern kann auf jeden reaktiven Wert zugreifen. Wenn Sie die Variable umschalten, ändert sich der Slot, in den der Inhalt eingefügt wird.

const dynamicName = ref("header");
// later: dynamicName.value = "footer";

Gerenderten Inhalt umschalten

Zusammen mit einem Child, das mehrere Named Slots definiert, können dynamische Namen je nach Zustand unterschiedliche Regionen aus einem einzigen Template aktivieren.

<!-- child has slots: header, body, footer -->
<Panel>
  <template #[activeSection]>
    Active content here
  </template>
</Panel>

Namen aus Props auswählen

Eine Component-Prop kann den Slot bestimmen. Das ist praktisch für konfigurierbare Wrapper, bei denen der Aufrufer die Region auswählt.

const props = defineProps({ target: String });
// use props.target inside #[props.target]

Über dynamische Slots iterieren

Sie können Slots in einer Schleife rendern, indem Sie jeden Namen aus dem jeweiligen Schleifenelement berechnen – nützlich für Tabellenspalten oder Tab-Systeme.

<template
  v-for="col in columns"
  v-slot:[col.name]="{ row }"
>
  {{ row[col.field] }}
</template>

Kleinschreibung und gültige Namen

Dynamische Slot-Namen sollten zu gültigen Zeichenfolgen aufgelöst werden. Null wird als Default-Slot behandelt. Vermeiden Sie bei Inline-Templates Leerzeichen und Zeichen, die in HTML-Attributnamen ungültig sind.

const name = condition ? "primary" : null;
// null -> default slot

Bedingte Slot-Auswahl

Ein Ternärausdruck innerhalb der eckigen Klammern wählt abhängig von einer Bedingung zwischen Slots aus – direkt im Template.

<Alert>
  <template #[isError ? 'error' : 'info']>
    {{ message }}
  </template>
</Alert>

Anwendungsfall: eine Tab-Komponente

Eine Tabs-Komponente kann den Inhalt des aktiven Tabs rendern, indem sie den Slot-Namen aus der ID des ausgewählten Tabs berechnet. Dadurch bleibt der Parent deklarativ.

<Tabs>
  <template #[currentTab]>
    {{ tabContent }}
  </template>
</Tabs>

Sorgen Sie für gute Lesbarkeit

Dynamische Slots sind leistungsfähig, können aber die Absicht des Codes verschleiern. Verwenden Sie sie bevorzugt, wenn die Menge der Slots tatsächlich datenabhängig ist. Bei einer festen kleinen Anzahl sind einfache Named Slots übersichtlicher.

Kurzer Test

Welche Syntax wählt einen Slot aus, dessen Name zur Laufzeit berechnet wird?

Zusammenfassung

Sie haben gelernt, dass dynamische Slot-Namen die Klammersyntax v-slot:[expr] oder #[expr] verwenden, um anhand von Props oder State zu berechnen, welcher Slot gefüllt werden soll. Dadurch werden konfigurierbare Wrapper, Tab-Systeme und datenbasierte Spaltenrenderings ermöglicht.

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 „Dynamische Slot-Namen“ kostenlos?

Ja — der vollständige Text von „Dynamische Slot-Namen“ 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 „Dynamische Slot-Namen“?

v-slot:[dynamicName], programmatische Slot-Auswahl, bedingtes Rendern von Slots. 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 3 von 4.

Wie lange dauert die Lektion „Dynamische Slot-Namen“?

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