Der Maintainer von TanStack Query, TkDodo, hat eine Reihe von Blogbeiträgen über die Verwendung und Arbeit mit der Bibliothek. Einige Artikel zeigen allgemeine Best Practices, aber die meisten haben einen * Meinungs-geprägten* Standpunkt.
Eine fortgeschrittene Einführung in React Query, die praktische Tipps zeigt, die über die Dokumentation hinausgehen. Sie behandelt die Erklärung der Standardwerte (staleTime vs. gcTime), Konzepte wie das Trennen von Server- und Client-Zustand, die Handhabung von Abhängigkeiten und die Erstellung benutzerdefinierter Hooks sowie die Hervorhebung, warum die Option enabled sehr leistungsfähig ist. Weiterlesen...
Lernen Sie die Möglichkeiten kennen, die recht gängige und wichtige Aufgabe der Transformation Ihrer Daten mit React Query durchzuführen. Von der Transformation in der queryFn bis zur Verwendung der select Option, dieser Artikel beschreibt die Vor- und Nachteile aller verschiedenen Ansätze. Weiterlesen...
Schauen wir uns an, was Sie tun können, wenn Ihre Komponente bei der Verwendung von React Query zu oft neu rendert. Die Bibliothek ist bereits ziemlich optimiert, aber es gibt immer noch einige optionale Funktionen (wie tracked queries), die Sie verwenden können, um den Übergang von isFetching zu vermeiden. Wir betrachten auch, was structural sharing bedeutet. Weiterlesen...
Wir prüfen normalerweise zuerst auf isPending, bevor wir auf isError prüfen, aber manchmal sollte die Prüfung, ob data verfügbar ist, das Erste sein, was wir tun. Dieser Artikel zeigt, wie eine falsche Reihenfolge von Status-Checks die Benutzererfahrung negativ beeinflussen kann. Weiterlesen...
Die Dokumentation behandelt bereits recht gut, was Sie für den Einstieg beim Testen von React Query tun müssen. Dieser Artikel zeigt einige zusätzliche Tipps (wie das Deaktivieren von retries oder das Stummschalten der console), die Sie möglicherweise beim Testen benutzerdefinierter Hooks oder von Komponenten, die diese verwenden, befolgen möchten. Er verlinkt auch zu einem Beispiel-Repository mit Tests für Erfolgs- und Fehlerzustände, unterstützt von mock-service-worker. Weiterlesen...
Da React Query in TypeScript geschrieben ist, hat es eine großartige Unterstützung dafür. Dieser Blogbeitrag erklärt die verschiedenen Generics, wie Sie Typinferenz nutzen können, um zu vermeiden, dass Sie useQuery und ähnliche Funktionen explizit typisieren müssen, was Sie mit unknown Fehlern tun können, wie Typ-Narrowing funktioniert und mehr! Weiterlesen...
Eine Schritt-für-Schritt-Anleitung, wie Sie Echtzeitbenachrichtigungen mit React Query zum Laufen bringen, entweder mit ereignisbasierten Abonnements oder durch Übertragung vollständiger Daten direkt an den Client. Anwendbar auf alles, von der nativen WebSocket-API des Browsers über Firebase bis hin zu GraphQL-Abonnements. Weiterlesen...
Die meisten Beispiele verwenden nur einen einfachen String oder Array als Query Key, aber wie organisieren Sie Ihre Keys effektiv, wenn Ihre App über eine To-Do-Liste hinauswächst? Dieser Artikel zeigt, wie Co-Location und Query Key Factories das Leben einfacher machen können. Weiterlesen...
In dieser Ergänzung zum vorherigen Blogbeitrag sehen wir uns an, wie wir den Query Function Context und Object Query Keys für maximale Sicherheit nutzen können, wenn unsere App wächst. Weiterlesen...
Platzhalter- und Initialdaten sind zwei ähnliche, aber unterschiedliche Konzepte, um synchron Daten anstelle eines Lade-Spinners anzuzeigen, um die Benutzererfahrung einer Anwendung zu verbessern. Dieser Blogbeitrag vergleicht die beiden und beschreibt die Szenarien, in denen jede am besten geeignet ist. Weiterlesen...
React Query holt keine Daten für Sie ab – es ist ein Datensynchronisationstool, das sich hervorragend für Server-Zustände eignet. Dieser Artikel enthält alles, was Sie wissen müssen, um React Query zu Ihrem einzigen State Manager für Ihren asynchronen Zustand zu machen. Sie lernen, wie Sie React Query seine Magie wirken lassen und warum die Anpassung von staleTime möglicherweise alles ist, was Sie brauchen. Weiterlesen...
Die Fehlerbehandlung ist ein integraler Bestandteil der Arbeit mit asynchronen Daten, insbesondere beim Datenabruf. Wir müssen uns dem stellen: Nicht alle Anfragen werden erfolgreich sein und nicht alle Promises werden erfüllt werden. Dieser Blogbeitrag beschreibt verschiedene Möglichkeiten, mit Fehlern in React Query umzugehen, wie z. B. die Fehler-Eigenschaft, die Verwendung von Error Boundaries oder onError-Callbacks, damit Sie Ihre Anwendung auf Fälle vorbereiten können, in denen "etwas schiefgelaufen ist". Weiterlesen...
Mutationen sind der wichtige, zweite Teil, der für die Arbeit mit Serverdaten erforderlich ist – für Situationen, in denen Sie diese aktualisieren müssen. Dieser Blogbeitrag behandelt, was Mutationen sind und wie sie sich von Queries unterscheiden. Sie lernen den Unterschied zwischen mutate und mutateAsync kennen und wie Sie Queries und Mutationen miteinander verknüpfen können. Weiterlesen...
Es gibt viele Möglichkeiten, Promises zu erzeugen – was alles ist, was React Query benötigt –, aber bei weitem der größte Anwendungsfall ist der Datenabruf. Sehr oft erfordert dies eine aktive Netzwerkverbindung. Aber manchmal, besonders auf Mobilgeräten, wo die Netzwerkverbindung unzuverlässig sein kann, müssen Sie, dass Ihre App auch ohne sie funktioniert. In diesem Artikel erfahren Sie mehr über die verschiedenen Offline-Strategien, die React Query bietet. Weiterlesen...
Formulare neigen dazu, die Grenze zwischen Server-Zustand und Client-Zustand zu verwischen. In den meisten Anwendungen möchten wir nicht nur den Zustand anzeigen, sondern dem Benutzer auch ermöglichen, damit zu interagieren. Dieser Artikel zeigt zwei verschiedene Ansätze sowie einige Tipps und Tricks zur Verwendung von React Query mit Formularen. Weiterlesen...
Dieser Artikel versucht, die am häufigsten gestellten Fragen zu React Query zu beantworten. Weiterlesen...
Remix und React Router verändern das Spiel, wenn es darum geht, *wann* Daten abgerufen werden. Dieser Artikel geht darauf ein, warum React Query und Router, die das Datenladen unterstützen, eine himmlische Kombination sind. Weiterlesen...
Dieser Blogbeitrag zeigt verschiedene Möglichkeiten, Daten in Ihren Query Cache zu bekommen, *bevor* Sie mit dem Rendern beginnen, um die Anzahl der Lade-Spinner in Ihrer App zu minimieren. Die Optionen reichen vom Vorabruf auf dem Server oder in Ihrem Router bis zum Füllen von Cache-Einträgen über setQueryData. Weiterlesen...
Wenn Sie sich jemals gefragt haben, wie React Query unter der Haube funktioniert – dieser Beitrag ist für Sie. Er erklärt die Architektur (einschließlich Grafiken), beginnend mit dem agnostischen Query Core und wie er mit den Framework-spezifischen Adaptern kommuniziert. Weiterlesen...
Es gibt einen großen Unterschied zwischen "Typen haben" und "typsicher sein". Dieser Artikel versucht, diese Unterschiede darzulegen und zeigt, wie Sie die bestmögliche Typsicherheit erzielen, wenn Sie React Query zusammen mit TypeScript verwenden. Weiterlesen...
Wenn Ihre Anwendung nicht auf clientseitigen Datenabruf angewiesen ist, insbesondere bei Frameworks wie Next.js oder Remix mit integrierten Serverkomponenten, ist React Query möglicherweise unnötig. Dennoch glänzt es weiterhin in hybriden Anwendungsfällen (wie unendliches Scrollen oder Offline-Unterstützung), wo sein intelligentes Caching und seine Revalidierung von unschätzbarem Wert sein können. Weiterlesen...
React Query ist keine Datenabrufbibliothek – es ist ein asynchroner State Manager, der entwickelt wurde, um Parameter als Abhängigkeiten zu behandeln, das Refetch-Verhalten über staleTime zu optimieren und deklarative Muster zu fördern, bei denen queryKey den Cache und Updates steuert. Eine kleine Änderung der Denkweise kann die Verwendung von React Query drastisch vereinfachen. Weiterlesen...
React Query ermöglicht es Komponenten, ihre eigenen Daten unabhängig zu verwalten, was sie eigenständig und widerstandsfähig macht. Wenn jedoch gemeinsam genutzte Daten (wie Benutzerinformationen, die weiter oben abgerufen wurden) tiefer im Baum benötigt werden, kann React Context diese implizite Abhängigkeit explizit und sicherer machen. Weiterlesen...
Während der Datenabruf mit fetch innerhalb von useEffect einfach erscheinen mag, verheddert er sich schnell mit Fehlern wie Race Conditions, fehlenden Ladezuständen, veralteten Daten und Strict Mode-Eigenheiten – was das Management asynchroner Zustände weitaus komplexer macht, als es scheint. Weiterlesen...
React Query v5 führt eine einheitliche "Query Options"-API ein – bei der alle Funktionen wie useQuery, invalidateQueries und imperative Aufrufe ein einzelnes Objekt akzeptieren – was die Benutzeroberfläche vereinfacht und die Wiederverwendung über verschiedene Query-Kontexte hinweg erleichtert und gleichzeitig die Typsicherheit verbessert. Weiterlesen...
React Query verknüpft Mutationen nicht automatisch mit Queries – aber Sie können "globale Cache-Callbacks" in einem zentralen MutationCache nutzen, um gemeinsame Verhaltensweisen zu definieren, wie z. B. das Invalidieren von Queries bei jeder Mutation. Weiterlesen...
Dieser Blogbeitrag ist ein tiefgehender Einblick in das Design und die Funktionsweise von Infinite Queries im Hintergrund. Interessanterweise gibt es keine separate Darstellung von InfiniteQuery – nur ein anderes "Verhalten", das mit regulären Queries verbunden ist. Weiterlesen...
In diesem Vortrag führt Dominik uns durch einige der API-Designentscheidungen, die in React Query getroffen wurden, um seine zweifellos gute Entwicklererfahrung zu erzielen. Sie hören Geschichten über Dinge, die gut gelaufen sind, aber auch über Kompromisse und Fehler, die gemacht wurden, und welche Lektionen wir alle daraus lernen können. Weiterlesen...
In diesem Vortrag untersucht Dominik die weniger schmeichelhaften Aspekte von React Query und Situationen, in denen es möglicherweise nicht die beste Wahl ist. Keine Bibliothek ist perfekt; jede Entscheidung beinhaltet Kompromisse. Am Ende dieses Vortrags werden Sie ein besseres Verständnis für die Grenzen von React Query haben und warum es trotz dieser Einschränkungen eine überzeugende Wahl bleibt. Weiterlesen...
Optimistische Updates in React Query können bei gleichzeitiger Ausführung mehrerer Mutationen zu Race Conditions führen, was zu inkonsistenten UI-Zuständen führt. Das Abbrechen von laufenden Queries hilft, aber überlappende Invalidierungen können immer noch neuere Updates überschreiben. Weiterlesen...
Die select-Option von React Query ermöglicht es Komponenten, nur an den spezifischen Teil der Daten einer Query gebunden zu sein, der sie interessiert – sodass die Aktualisierung eines Feldes nicht unnötig zu irrelevanten UI-Neuerenderungen führt. Dieser feingranulare Ansatz hält vollständige Antworten im Cache, optimiert aber gleichzeitig die Komponent-Updates für die Leistung. Weiterlesen...