0Pricing
React Academy · Lektion

Benannte Slots über Objekt-Props

Implementieren Sie Header-, Body- und Footer-Slots, indem Sie JSX über benannte Props übergeben.

Benannte Slots über Objekt-Props ist eine kostenlose React 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 React Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der React Academy-Kurs umfasst insgesamt 4 Lektionen.

Willkommen

In dieser Lektion implementieren Sie flexible benannte Slots, indem Sie JSX über benannte Props übergeben. So ermöglichen Sie Layout-Komponenten mit Header-, Body- und Footer-Bereichen ohne eine starre children-Struktur.

Die Einschränkung von children

Ein einzelnes `children`-Prop eignet sich für einen Bereich. Wenn eine Komponente mehrere unabhängige Inhaltsbereiche benötigt (etwa eine Card mit Header und Footer), sind benannte Props mit JSX die saubere Lösung.

Slots über benannte Props

Definieren Sie für jeden Slot ein Prop im Interface der Komponente. Das übergeordnete Element übergibt JSX an jedes Prop. Die Komponente rendert jeden Slot an der richtigen Position.
function Card({ header, body, footer }) {
  return (
    <div className="card">
      <div className="card-header">{header}</div>
      <div className="card-body">{body}</div>
      <div className="card-footer">{footer}</div>
    </div>
  );
}

// Usage
<Card
  header={<h2>Title</h2>}
  body={<p>Content here</p>}
  footer={<button>OK</button>}
/>

Optionale Slots

Machen Sie Slots optional, indem Sie sie nur rendern, wenn das Prop einen truthy-Wert hat. So kann dieselbe Komponente beispielsweise mit oder ohne Footer verwendet werden.
function Card({ header, children, footer }) {
  return (
    <div>
      {header && <div className="header">{header}</div>}
      <div className="body">{children}</div>
      {footer && <div className="footer">{footer}</div>}
    </div>
  );
}

children und benannte Slots kombinieren

Verwenden Sie `children` für den primären Inhaltsbereich und benannte Props für sekundäre Bereiche. Das folgt dem Prinzip, dass der häufigste Anwendungsfall am ergonomischsten sein sollte.
<Dialog
  title="Confirm"
  actions={<><button>Cancel</button><button>OK</button></>}
>
  <p>Are you sure?</p>  {/* children = primary slot */}
</Dialog>

TypeScript: Benannte Slots typisieren

Typisieren Sie benannte Slot-Props als `React.ReactNode`, damit sie beliebigen JSX-Inhalt akzeptieren.
interface CardProps {
  header?: React.ReactNode;
  children: React.ReactNode;
  footer?: React.ReactNode;
}

Benannte Slots im Vergleich zu Compound Components

Benannte Props sind einfach und explizit. Compound Components (wie ``) sind für komplexe Komponentenfamilien ergonomischer, erfordern aber mit Context mehr Einrichtung. Beginnen Sie mit benannten Props und wechseln Sie bei Bedarf später.

Komponenten als Slots übergeben

Sie können einen Slot auch als React-Komponente typisieren (nicht als JSX). Das übergeordnete Element übergibt eine Komponentenreferenz, und das Layout rendert sie. Dadurch kann das Layout steuern, wann und wie oft der Slot gerendert wird.
function Timeline({ renderItem, items }) {
  return (
    <ul>
      {items.map(item => (
        <li key={item.id}>{renderItem(item)}</li>
      ))}
    </ul>
  );
}

<Timeline
  items={data}
  renderItem={item => <EventCard event={item} />}
/>

Layout-Komposition mit benannten Slots

Seitenlayout-Komponenten verwenden häufig benannte Slots. Eine Page-Shell-Komponente mit `sidebar`-, `toolbar`- und `content`-Slots ermöglicht es verschiedenen Seiten, dieselbe Shell mit vollständig unterschiedlichen Inhalten in den einzelnen Bereichen zusammenzusetzen.

Benannte Slots dokumentieren

Benannte Slots dokumentieren sich durch TypeScript-Interfaces oder PropTypes selbst. Consumer können genau sehen, welche Slots verfügbar und welche optional sind, wodurch weniger externe Dokumentation erforderlich ist.

Kurzer Test

Welchen TypeScript-Typ sollten Sie für ein benanntes Slot-Prop verwenden, das beliebiges JSX akzeptiert?

Zusammenfassung

Benannte Slot-Props machen Layout-Komponenten flexibel und selbstdokumentierend. Verwenden Sie children für den Hauptbereich, benannte Props für sekundäre Bereiche und typisieren Sie sie als React.ReactNode.

Als Nächstes

Nächste Lektion: **Cloning & Injecting Props with cloneElement** – Sie verwenden React.cloneElement, um versteckte Props vom übergeordneten Element an seine children zu übergeben.

Häufig gestellte Fragen

Ist die Lektion „Benannte Slots über Objekt-Props“ kostenlos?

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

Was lerne ich in „Benannte Slots über Objekt-Props“?

Implementieren Sie Header-, Body- und Footer-Slots, indem Sie JSX über benannte Props übergeben. Du übst React 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 React Academy zu starten?

Keine Vorkenntnisse erforderlich. React 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 „Benannte Slots über Objekt-Props“?

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 React Academy-Lektion Code schreiben und ausführen?

Ja. Jede React 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. Grundlagen von props.children
  2. React.Children-Hilfsfunktionen
  3. Benannte Slots über Objekt-Props
  4. Props mit cloneElement klonen und injizieren
← Zurück zu React Academy