Esta página se muestra en inglés. Una traducción al español está en curso.
ScriptsApr 11, 2026·2 min de lectura

TanStack Query — Async State & Data Fetching for the Web

TanStack Query (formerly React Query) is a powerful asynchronous state management library for TS/JS that handles server-state, caching, background updates, and data synchronization across React, Solid, Svelte, and Vue.

Introducción

TanStack Query (formerly React Query) is the missing data-fetching library for web applications. It eliminates manual state management for server data (loading/error/caching/refetch).

What TanStack Query Does

  • Caching — automatic with configurable staleTime/gcTime
  • Deduping — identical requests collapsed
  • Background refetch — on window focus, reconnect, interval
  • Pagination/Infinite queries — first-class support
  • Mutations — optimistic updates with rollback
  • Devtools — inspect cache state in real time

Architecture

Singleton QueryClient holds the cache. Each useQuery subscribes via queryKey. Cache invalidation uses key prefix matching: queryClient.invalidateQueries({ queryKey: ["todos"] }).

Self-Hosting

No backend. Client-only library. Install via package manager.

Key Features

  • Framework-agnostic core
  • Typed queries (infer from queryFn)
  • Optimistic updates
  • Parallel & dependent queries
  • Prefetching & SSR support (Next.js, Remix, Nuxt)
  • Offline support
  • Automatic retries with exponential backoff

Comparison

Library Scope Mutations Caching
TanStack Query Server state Yes Automatic
SWR Server state Limited Automatic
Redux Toolkit Query Server state Yes Manual tags
Apollo Client GraphQL Yes Normalized

FAQ

Q: Does it conflict with Redux? A: No. Redux manages client state; Query manages server state. Use them together.

Q: What's the difference between staleTime and gcTime? A: staleTime determines how long before data becomes stale (triggering a background refetch); gcTime determines how long unsubscribed data stays in the cache before being removed.

Q: Does it support SSR? A: Yes. Use HydrationBoundary + dehydrate to prefetch on the server.

Sources & Credits

Discusión

Inicia sesión para unirte a la discusión.
Aún no hay comentarios. Sé el primero en compartir tus ideas.

Activos relacionados