Should I keep all component's state in Redux store?
Assesses fundamental understanding of React conventions, runtime behavior, and memory/performance considerations.
Hiring managers look for precision, avoidance of ambiguous jargon, and ability to explain trade-offs under real production conditions.
No. In professional state architecture, keeping 100% of application state in a global Redux store is an anti-pattern. You should carefully separate global server/client cache state from local transient UI state:
### What belongs in Redux / Global State:
- Authenticated User Session: User profile, roles, permissions, auth tokens.
- Global Application Preferences: Active theme (dark/light), locale/language, currency.
- Shared Business Entities: Shopping cart items, notifications, cross-page workflow data.
- Server Cache (via RTK Query): Cached API payloads and background synchronization.
### What belongs in Local Component State (useState / useReducer):
- Form Input State: Field keystrokes, validation touched states before submission.
- UI Toggles: Dropdown open/closed states, modal visibility, accordions.
- Transient Visual State: Hover tooltips, tab indices, loading spinner states within a specific card.
### Guiding Architectural Rule:
*If no other component in the tree cares about this state when the current component unmounts, keep it local.* Storing transient keystrokes in Redux causes unnecessary store dispatches, serializations, and re-renders.
Candidate Response Strategy & Interview Tips
- Start with a concise one-sentence summary: Deliver a direct, confident answer first before expanding into nuances.
- Demonstrate real-world trade-offs: Discuss where this approach excels and when you would avoid it in production systems.
- Discuss complexity & edge cases: Proactively explain time/space complexity or boundary conditions (null values, scale limits).
- Prepare for interviewer follow-ups: Technical hiring panels frequently probe deeper into concurrency, backward compatibility, or alternative libraries.