0Pricing
React Academy · Lektion

Der use()-Hook für asynchrone Ressourcen

Lesen Sie Promises und Context während des Renderings mit dem use()-Hook in React 19 aus.

Der use()-Hook für asynchrone Ressourcen ist eine kostenlose React Academy-Lektion auf CoddyKit. Dies ist Lektion 2 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 den use()-Hook von React 19, um Promises und Context-Werte direkt innerhalb der Render-Funktion zu lesen und so den asynchronen Datenzugriff zu vereinfachen.

Was ist use()?

use() ist ein React-19-Hook, der eine Ressource — entweder ein Promise oder einen Context — synchron in der Render-Funktion liest. Wenn das Promise noch aussteht, wird die Komponente angehalten und die nächstgelegene Suspense-Boundary zeigt ihren Fallback an.
import { use } from 'react';

function UserProfile({ userPromise }) {
  const user = use(userPromise); // suspends if pending
  return <h1>{user.name}</h1>;
}

Promises als Props übergeben

Ein gängiges Muster in React 19: Die Server Component erstellt ein Promise (z. B. für eine DB-Abfrage), übergibt es an eine Client Component, und die Client Component liest es mit use(). Die Suspense-Boundary kann sich an beliebiger Stelle darüber befinden.
// Server Component
export default function Page() {
  const userPromise = fetchUser(1); // NOT awaited
  return (
    <Suspense fallback={<Spinner />}>
      <Profile userPromise={userPromise} />
    </Suspense>
  );
}

// Client Component
'use client';
export function Profile({ userPromise }) {
  const user = use(userPromise);
  return <p>{user.name}</p>;
}

use() vs. useEffect für Daten

Datenabrufe mit useEffect erfordern die manuelle Verwaltung von Lade- und Fehlerzuständen. use() mit Suspense beseitigt diesen gesamten Boilerplate-Code — der Komponenten-Body liest die Daten einfach so, als wären sie synchron verfügbar.

use() für Context

use() kann ebenso wie useContext Context-Werte lesen. Der Unterschied besteht darin, dass use() bedingt aufgerufen werden kann (innerhalb von if-Anweisungen oder Schleifen) — anders als useContext, das den Rules of Hooks folgt.
import { use } from 'react';
import { ThemeContext } from './ThemeContext';

function Button({ danger }) {
  if (danger) {
    const theme = use(ThemeContext); // conditional — allowed with use()!
    return <button style={{ color: theme.red }}>Delete</button>;
  }
  return <button>Click</button>;
}

Fehlerbehandlung mit ErrorBoundary

Wenn das an use() übergebene Promise abgelehnt wird, löst React den Fehler aus. Umschließen Sie die Komponente mit einer ErrorBoundary, um ihn abzufangen und einen Fallback anzuzeigen.
<ErrorBoundary fallback={<Error />}>
  <Suspense fallback={<Loading />}>
    <Profile userPromise={fetchUser(id)} />
  </Suspense>
</ErrorBoundary>

use() nur in Client Components

use() funktioniert mit einem Promise in Client Components. Verwenden Sie in Server Components direkt async/await — für Promises auf dem Server ist use() nicht erforderlich.

Promises cachen

Wenn eine Komponente erneut gerendert wird, muss sie dieselbe Promise-Referenz erhalten, damit kein erneuter Abruf erfolgt. Erstellen Sie Promises außerhalb der Komponente oder an einer stabilen Stelle (Server, Cache oder State), und übergeben Sie sie als Props.

Streaming mit use()

Wenn Sie use() mit Streaming-SSR kombinieren, kann React das HTML der Seite streamen, den Suspense-Fallback anzeigen und anschließend den aufgelösten Inhalt streamen, sobald das Promise aufgelöst wird — alles über eine einzige HTTP-Verbindung.

React.cache() zur Deduplizierung

Auf dem Server dedupliziert React.cache() (oder Next.js’ unstable_cache) mehrere Aufrufe derselben asynchronen Funktion innerhalb eines einzelnen Rendervorgangs. Dadurch wird die Datenbank nur einmal abgefragt, selbst wenn mehrere Komponenten dasselbe Promise verwenden.

Schnelltest

Was macht eine Client-Komponente, wenn use(promise) aufgerufen wird und das Promise noch aussteht?

Zusammenfassung

use(promise) liest asynchrone Daten synchron während des Rendervorgangs und unterbricht ihn, solange das Promise noch aussteht. use(context) funktioniert im Gegensatz zu useContext auch bedingt. Verwenden Sie immer Suspense für Ladezustände und ErrorBoundary für Fehler.

Als Nächstes

Nächste Lektion: **React Actions & useActionState** — Sie definieren Server- und Client-Actions und verarbeiten Formulareinsendungen mit einem Status für ausstehende Vorgänge.

Häufig gestellte Fragen

Ist die Lektion „Der use()-Hook für asynchrone Ressourcen“ kostenlos?

Ja — der vollständige Text von „Der use()-Hook für asynchrone Ressourcen“ 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 „Der use()-Hook für asynchrone Ressourcen“?

Lesen Sie Promises und Context während des Renderings mit dem use()-Hook in React 19 aus. 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 2 von 4.

Wie lange dauert die Lektion „Der use()-Hook für asynchrone Ressourcen“?

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. React Server Components erklärt
  2. Der use()-Hook für asynchrone Ressourcen
  3. React Actions und useActionState
  4. useOptimistic für sofortiges Feedback
← Zurück zu React Academy