Data Fetching and Caching Patterns
Replace ad-hoc useEffect fetching with TanStack Query — caching, retries, and background refetching for free. Treat server data as a first-class cache with its own lifecycle: replace a hand-rolled fetch with useQuery, add mutations with optimistic updates, and handle pagination.
Data from a server is asynchronous, can go stale, can fail, and is often needed by more than one component at once — treating it like local useState leads to duplicated loading/error handling and components silently showing stale data. TanStack Query (formerly React Query) treats server data as a first-class cache with its own lifecycle. This project replaces a hand-rolled useEffect fetch with useQuery, adds mutations with optimistic updates, and handles pagination.
Step 1 — See the problem: fetching by hand
Step 2 — Fetch with useQuery
Step 3 — Mutate with optimistic updates
Step 4 — Paginate and prefetch
Secret Mission: build offline resilience
Before You Go
Test what you just learned
Self-testing is one of the best ways to retain new skills. Unlock project quizzes to check your understanding.
Log in to unlock0 / 7 complete
