0Pricing
React Academy · Lektion

Suspense für Daten- und Code-Grenzen

Kombinieren Sie Suspense mit Lazy Loading und zukünftigen Datenbibliotheken, um übersichtliche Ladezustände zu erstellen.

Suspense für Daten- und Code-Grenzen ist eine kostenlose React Academy-Lektion auf CoddyKit. Dies ist Lektion 4 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 verwenden Sie React Suspense zusammen mit React.lazy für Code-Splitting und mit Datenbibliotheken, um während des Ladens von Inhalten eine Fallback-UI anzuzeigen.

Was ist Suspense?

Suspense ist eine React-Komponente, die Komponenten in ihrem Teilbaum auffängt, die „suspendiert“ sind, also auf das Laden von etwas warten, und stattdessen eine Fallback-UI rendert.
<Suspense fallback={<Spinner />}>
  <MyComponent />
</Suspense>

Suspense mit React.lazy

React.lazy() erstellt eine Komponente, die aus einem dynamischen Import geladen wird. Bei der Verwendung innerhalb von Suspense wird die Fallback-UI gerendert, bis das JavaScript-Bundle heruntergeladen wurde.
const HeavyChart = React.lazy(() => import('./HeavyChart'));

<Suspense fallback={<p>Loading chart...</p>}>
  <HeavyChart />
</Suspense>

Mehrere Lazy-Komponenten unter einer Boundary

Mehrere Lazy-Komponenten unter derselben Suspense-Boundary teilen sich eine Fallback-UI. React wartet, bis ALLE Komponenten geladen sind, bevor der Inhalt angezeigt wird. Verwenden Sie verschachtelte Boundaries für unabhängige Ladezustände.

Verschachtelte Suspense-Boundaries

Verschachteln Sie Suspense-Boundaries, damit Teile der Benutzeroberfläche angezeigt werden, sobald sie geladen sind, statt auf alles zu warten. Äußere Boundaries fangen langsamere Ladevorgänge ab, innere Boundaries kümmern sich um schnelle Ladevorgänge.
<Suspense fallback={<PageSkeleton />}>
  <Header />
  <Suspense fallback={<ChartSkeleton />}>
    <LazyChart />
  </Suspense>
</Suspense>

Suspense mit Datenbibliotheken

Bibliotheken wie React Query (mit suspense: true) und Relay suspendieren Komponenten, die auf Daten warten, ähnlich wie beim Lazy Loading. Die Suspense-Boundary stellt die Fallback-UI bereit.
const { data } = useQuery({ queryKey: ['users'], queryFn: fetchUsers,
  suspense: true }); // component suspends until data is ready
// No loading check needed — data is always available here

Der use()-Hook in React 19

In React 19 können Sie mit dem `use(promise)`-Hook ein Promise direkt in einer Komponente lesen. Wenn das Promise noch aussteht, wird die Komponente suspendiert und die nächstgelegene Suspense-Boundary zeigt ihre Fallback-UI an.
import { use } from 'react';

function Profile({ userPromise }) {
  const user = use(userPromise); // suspends until resolved
  return <p>{user.name}</p>;
}

SuspenseList für geordnete Anzeigen

React.SuspenseList (experimentell) koordiniert mehrere Suspense-Boundaries, damit sie in einer bestimmten Reihenfolge angezeigt werden, etwa von oben nach unten oder alle gleichzeitig. So wird verhindert, dass die Benutzeroberfläche chaotisch nach und nach erscheint.

Suspense fängt keine Fehler ab

Suspense behandelt ausschließlich Ladezustände. Fehler durch fehlgeschlagene Abrufe werden nicht abgefangen. Kombinieren Sie Suspense mit einer Error Boundary, um sowohl Lade- als auch Fehlerzustände zu behandeln.
<ErrorBoundary fallback={<Error />}>
  <Suspense fallback={<Spinner />}>
    <DataComponent />
  </Suspense>
</ErrorBoundary>

Skeleton Screens als Fallbacks

Verwenden Sie statt Ladeindikatoren Skeleton Screens als Fallbacks für Suspense. Skeleton Screens sind Platzhalterlayouts, die der Form des Inhalts entsprechen und dadurch Layout-Verschiebungen beim Eintreffen der Inhalte reduzieren.

Kurze Überprüfung

Was wird Benutzern angezeigt, während das Bundle einer React.lazy()-Komponente heruntergeladen wird?

Zusammenfassung

Suspense umschließt Komponenten, die geladen werden, und zeigt eine Fallback-UI an. Verwenden Sie React.lazy für Code-Splitting, die Suspense-Modi von Datenbibliotheken für das Laden von Daten und verschachtelte Boundaries für unabhängige, schrittweise Anzeigen. Kombinieren Sie Suspense mit einer Error Boundary für eine vollständige Fehlerbehandlung.

Kurs abgeschlossen

Herzlichen Glückwunsch! Sie haben **Asynchrone Muster in React: Promises & Nebenläufigkeit** abgeschlossen. Sie können nun Race Conditions behandeln, `useTransition` und `useDeferredValue` für reaktionsfähige UIs einsetzen und Suspense für Ladegrenzen nutzen.

Häufig gestellte Fragen

Ist die Lektion „Suspense für Daten- und Code-Grenzen“ kostenlos?

Ja — der vollständige Text von „Suspense für Daten- und Code-Grenzen“ 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 „Suspense für Daten- und Code-Grenzen“?

Kombinieren Sie Suspense mit Lazy Loading und zukünftigen Datenbibliotheken, um übersichtliche Ladezustände zu erstellen. 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 4 von 4.

Wie lange dauert die Lektion „Suspense für Daten- und Code-Grenzen“?

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. Race Conditions und Effect-Cleanup
  2. useTransition für blockierungsfreie UI-Updates
  3. useDeferredValue zur Eingabe-Entprellung
  4. Suspense für Daten- und Code-Grenzen
← Zurück zu React Academy