React Academy · Lektion

React Query und QueryClient einrichten

Installieren Sie TanStack Query, umschließen Sie Ihre App mit QueryClientProvider und führen Sie Ihr erstes useQuery aus.

Lektion 1 von 413 Schritte

React Query und QueryClient einrichten ist eine kostenlose React 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 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 installieren Sie TanStack Query, richten QueryClient und QueryClientProvider ein und führen Ihr erstes useQuery aus, um Daten von einer API abzurufen.

Was ist React Query?

TanStack Query (früher React Query) verwaltet Server-State: das Abrufen, Caching, Synchronisieren und Aktualisieren von Daten aus entfernten Quellen. Es ersetzt die manuelle Verwaltung von Lade- und Fehlerstatus sowie das datenabrufende useEffect-Muster.

Installation

Installieren Sie das Kernpaket und optional die DevTools.
npm install @tanstack/react-query
npm install @tanstack/react-query-devtools --save-dev

Einen QueryClient erstellen

Erstellen Sie eine QueryClient-Instanz, die sämtliche Caching- und Konfigurationseinstellungen enthält. Übergeben Sie sie an QueryClientProvider, der Ihre App umschließt.
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';

const queryClient = new QueryClient();

createRoot(document.getElementById('root')).render(
  <QueryClientProvider client={queryClient}>
    <App />
  </QueryClientProvider>
);

Ihr erstes useQuery

Rufen Sie useQuery mit einem queryKey-Array und einer queryFn auf, die die Daten zurückgibt. Der Schlüssel identifiziert den Cache-Eintrag eindeutig.
import { useQuery } from '@tanstack/react-query';

function Posts() {
  const { data, isLoading, isError } = useQuery({
    queryKey: ['posts'],
    queryFn: () => fetch('/api/posts').then(r => r.json()),
  });

  if (isLoading) return <p>Loading...</p>;
  if (isError) return <p>Error!</p>;
  return <ul>{data.map(p => <li key={p.id}>{p.title}</li>)}</ul>;
}

Query Keys

Query Keys sind Arrays. Fügen Sie dem Schlüssel Parameter hinzu, um den Cache-Eintrag einzugrenzen. Unterschiedliche Schlüssel ergeben unterschiedliche Cache-Einträge.
// All posts
useQuery({ queryKey: ['posts'], queryFn: fetchPosts })

// Post with id 5
useQuery({ queryKey: ['posts', 5], queryFn: () => fetchPost(5) })

// Posts filtered by category
useQuery({ queryKey: ['posts', { category: 'react' }], queryFn: /* ... */ })

Query-Status

useQuery gibt mehrere Statuswerte zurück: `isLoading`, `isFetching`, `isError`, `isSuccess`, `data` und `error`. `isFetching` ist auch bei Hintergrundaktualisierungen true; `isLoading` ist nur beim ersten Laden true.

React Query DevTools

Fügen Sie Ihrer App in der Entwicklungsumgebung ReactQueryDevtools hinzu, um alle Cache-Einträge, ihren Status und den Zeitpunkt ihres letzten Abrufs zu sehen. Das ist für das Debugging äußerst hilfreich.
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';

<QueryClientProvider client={queryClient}>
  <App />
  <ReactQueryDevtools initialIsOpen={false} />
</QueryClientProvider>

Standardkonfiguration

Konfigurieren Sie globale Standardwerte auf dem QueryClient: staleTime, gcTime (Garbage Collection), die Anzahl der Wiederholungsversuche und refetchOnWindowFocus.
const queryClient = new QueryClient({
  defaultOptions: {
    queries: {
      staleTime: 60_000,     // data is fresh for 60s
      retry: 2,              // retry failed queries twice
      refetchOnWindowFocus: false,
    },
  },
});

Automatisches erneutes Abrufen

Standardmäßig ruft React Query veraltete Daten erneut ab, wenn das Fenster wieder den Fokus erhält, die Komponente erneut eingebunden wird oder die Netzwerkverbindung wiederhergestellt wird. Diese Optionen können für jede Query einzeln konfiguriert werden.

Schnelltest

Welchen Zweck hat das queryKey-Array in useQuery?

Zusammenfassung

Installieren Sie @tanstack/react-query, erstellen Sie einen QueryClient, umschließen Sie Ihre App mit QueryClientProvider und rufen Sie useQuery mit einem queryKey und einer queryFn auf. Fügen Sie die DevTools hinzu, um Einblick in den Cache zu erhalten. Konfigurieren Sie globale Standardwerte auf dem QueryClient.

Als Nächstes

Nächste Lektion: **Caching, Stale Time & Background Refetching** — Sie konfigurieren staleTime und gcTime, um zu steuern, wann Daten erneut abgerufen werden.
Kostenlos starten

Lerne React 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
88
Lektionen
324

Häufig gestellte Fragen

Ist die Lektion „React Query und QueryClient einrichten“ kostenlos?

Ja — der vollständige Text von „React Query und QueryClient einrichten“ 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 „React Query und QueryClient einrichten“?

Installieren Sie TanStack Query, umschließen Sie Ihre App mit QueryClientProvider und führen Sie Ihr erstes useQuery 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 1 von 4.

Wie lange dauert die Lektion „React Query und QueryClient einrichten“?

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 Query und QueryClient einrichten
  2. Caching, Stale Time und Refetching im Hintergrund
  3. Mutations mit useMutation
  4. Infinite Scroll und Pagination mit useInfiniteQuery
← Zurück zu React Academy