von Dominik Dorfmeister am 14. Juli 2022. Wir freuen uns, die nächste Version von TanStack Query, früher bekannt als react-query 🎉, anzukündigen. Das Rebranding und die Umstrukturierung zu einem Monorepo ermöglichen es uns nun endlich, die Freude von react-query auf andere Frameworks wie vue, svelte oder solid zu übertragen.
TanStack Query basiert auf einem agnostischen Kern mit frameworkspezifischen Adaptern. Dies ermöglicht es uns, die Kernlogik, die TanStack Query so großartig macht, wie den QueryClient oder Query Subscriptions, zwischen Frameworks zu teilen, während wir gleichzeitig frameworkspezifischen Code wie Hooks (useQuery und useMutation) innerhalb von Adaptern haben.
npm i @tanstack/react-query
# or
yarn add @tanstack/react-query
npm i @tanstack/react-query
# or
yarn add @tanstack/react-query
v4 hat TanStack Query von einer Daten-Fetching-Bibliothek zu einem echten asynchronen State-Manager weiterentwickelt. Alle Annahmen, die zuvor über die Notwendigkeit einer aktiven Netzwerkverbindung getroffen wurden, sind nun weggefallen, sodass TanStack Query *wirklich* mit jedem Promise funktioniert, egal wie Sie es produzieren. Um dies zu erreichen, haben wir einen brandneuen Netzwerkmodus eingeführt, der TanStack Query hilft zu entscheiden, wann Abfragen online sein sollen oder nicht.
Seit v3 existieren Persister als experimentelles Feature. Sie ermöglichen es Ihnen, den Query Cache mit einem externen Speicherort (z. B. localStorage) zu synchronisieren, um ihn später verwenden zu können. Wir haben die APIs nach viel Feedback überarbeitet und verbessert und bieten nun zwei Hauptpersister out of the box an
Diese Persister funktionieren für die meisten Anwendungsfälle sehr gut, aber nichts hindert Sie daran, Ihren eigenen Persister zu schreiben – solange er dem erforderlichen Interface entspricht.
React 18 wurde Anfang des Jahres veröffentlicht, und v4 hat nun erstklassige Unterstützung dafür und die neuen concurrently Features, die es mit sich bringt. Um dies zu erreichen, wurden interne Abonnements neu geschrieben, um den neuen useSyncExternalStore Hook zu nutzen.
Tracked Queries sind eine Leistungsoptimierung, die in v3.6.0 als opt-in Feature hinzugefügt wurde. Diese Optimierung ist nun das Standardverhalten in v4, was Ihnen einen schönen Schub in der Renderleistung geben sollte.
Im Laufe der Zeit sind einige unserer APIs ziemlich komplex geworden, bis zu dem Punkt, dass sie sich widersprachen. Einige Beispiele sind:
Wir haben viele dieser Inkonsistenzen bereinigt, um die Entwicklererfahrung noch besser zu gestalten. v4 kommt auch mit einem Codemod, der Ihnen bei der Migration hilft.
Unter anderem die Bereinigung der Dokumentation. Wie Sie vielleicht bemerkt haben, ist sie immer noch sehr reaktiv und verweist manchmal auf react-query. Bitte haben Sie etwas Geduld mit uns, während wir die Dokumentation umstrukturieren, und PRs sind immer willkommen.
Außerdem mehr Adapter. Derzeit existiert nur der React-Adapter, aber wir sind bestrebt, bald weitere Frameworks hinzuzufügen.