Ankündigung von TanStack Query v4

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.

Installation

npm i @tanstack/react-query
# or
yarn add @tanstack/react-query
npm i @tanstack/react-query
# or
yarn add @tanstack/react-query

Neue Features

Richtige Offline-Unterstützung

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.

Stabile Persister

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

  • SyncStoragePersister
  • AsyncStoragePersister

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.

Unterstützung für React 18

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.

Abfragen standardmäßig verfolgt

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.

Optimierte APIs

Im Laufe der Zeit sind einige unserer APIs ziemlich komplex geworden, bis zu dem Punkt, dass sie sich widersprachen. Einige Beispiele sind:

  • QueryKeys werden manchmal als Array konvertiert, wenn sie angezeigt werden, manchmal nicht.
  • Query Filter sind unintuitiv und sich gegenseitig ausschließend.
  • Standardwerte für Parameter, die auf verschiedenen Methoden auf entgegengesetzte Werte standardmäßig gesetzt 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.

Was kommt als Nächstes?

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.