Before diving into React Query specifics, it helps to understand what makes server state different from regular React state.
| Feature | Client State | Server State |
|---|---|---|
| Where it lives | Browser memory | Remote database/API |
| Who owns it | Your app | The server |
| Can go stale? | No | Yes |
| Needs fetching? | No | Yes |
| Example | Modal open/close | User profile, posts list |
Server state is asynchronous, can become stale at any time (someone else might update the data), and needs to be cached to avoid unnecessary network requests.