डिफ़ॉल्ट रूप से किसी global store की ओर भागने के बजाय, tool को state के प्रकार के अनुसार चुनें। ज़्यादातर "global state" की समस्याएँ असल में काम के लिए गलत tool चुनने की वजह से होती हैं।
एक decision guide
text
Local UI state (toggle, input) → useState / useReducer
Shared, low-frequency (theme, user) → Context
Server/API data → React Query / SWR (NOT a global store)
Complex global client state → Zustand / Jotai / Redux Toolkit
URL-shareable state (filters, page) → the URL (search params)
सबसे महत्वपूर्ण अंतर्दृष्टि: server state ≠ client state
किसी API से आया data remote data का एक है, न कि वह state जिसके मालिक आप हैं। इसे Redux में रखने का मतलब है कि आप loading, caching, refetching, और invalidation को मैन्युअल रूप से संभालें — जो कष्टदायक और bug-प्रवण है। एक server-state library यह सब करती है:
