| Question | Likely answer |
|---|---|
| One component owns it? | useState |
| Nearby components share it? | Lift state |
| Many related transitions? | useReducer |
| Cross-cutting dependency? | Context |
| Remote async data? | TanStack Query or RTK Query |
| Shareable state? | URL/search params |
| Strict lifecycle? | State machine |
| Broad client state? | Redux Toolkit or another external store |
“I classify state by ownership, lifetime, and source of truth, then choose the smallest mechanism that provides the required coordination, persistence, async behavior, and debugging.”