React State Management

Standards for managing local, global, and server state.

fierzone Updated

File contents

React State Management

Priority: P0 (CRITICAL)

Choosing the right tool for state scope.

Implementation Guidelines

  • Local: useState. useReducer if complex (state machine).
  • Derived: const fullName = first + last. No state sync.
  • Context: DI, Theming, Auth. Not for high-freq data.
  • Global: Zustand/Redux for app-wide complex flow.
  • Server Cache: Use React.cache (RSC) to dedupe requests per render.
  • Server State: React Query / SWR / Apollo. Cache != UI State.
  • URL: Store filter/sort params in URL (Source of Truth).
  • Immutability: Never mutate. Use spread or Immer.

Anti-Patterns

  • No Prop Drilling > 2: Use Context/Composition.
  • No Mirroring Refs: Don't copy props to state.
  • No Multi-Source: Single Source of Truth.
  • No Context Abuse: Context causes full-tree re-render.

Reference & Examples

For Zustand, Redux Toolkit, and TanStack Query patterns: See references/REFERENCE.md.

Related Topics

hooks | component-patterns | performance

fierzone/agent-skills-standard/tree/main/skills/react/state-management commit 77113e0ae1

Frequently asked questions

npx skillmds@latest add fierzone/react-state-management