TanStack Query (formerly React Query) handles server state — fetching, caching, deduping, retrying, refetching on focus, and stale-while-revalidate — with hooks-shaped ergonomics.
It is framework-agnostic these days, with adapters for React, Vue, Svelte, and Solid. The mental shift is moving server data out of Redux/Zustand and into a query cache where it belongs.
Pair it with persistQueryClient to keep the cache across sessions, and useMutation with optimistic updates for snappier UIs.