Redux

Understand classic Redux ideas so you can explain centralized event-driven state clearly and know when Redux is still justified in modern React.

Last reviewed: June 2026

·React 16+React 18Redux 5.x
✅
Quick Understanding: Redux is a predictable state container built around one-way data flow: dispatch an action, run a reducer, and derive UI from the store. The modern implementation path is usually Redux Toolkit.

🔍 What Is It?

Redux centralizes state transitions through actions and reducers.

  • →Actions describe what happened
  • →Reducers decide how state changes
  • →The store holds the current state tree
  • →Components subscribe to selected slices of that state

🎯 Why Do We Need It?

Even when teams choose Redux Toolkit today, they still need to understand the underlying Redux model. It explains event-driven state, normalized entities, explicit transitions, and why some enterprise apps still prefer a central store.

🏗️ What Happens in Real Projects?

Redux remains relevant in large consoles, complex multistep product workflows, and applications where many teams need clear conventions, auditability, and explicit state transition history.

⚙️ How It Works

A component dispatches an action such as cart/itemAdded. The reducer receives the current state and that action, returns the next state, and subscribed components re-render if their selected data changed.

💻 Example

Redux Data Flow — The conceptual flow matters even when Redux Toolkit generates much of the boilerplate.

ts
type CartAction =
  | { type: 'itemAdded'; item: { id: string; qty: number } }
  | { type: 'itemRemoved'; id: string };

type CartState = {
  items: Array<{ id: string; qty: number }>;
};

const initialState: CartState = { items: [] };

function reducer(state = initialState, action: CartAction): CartState {
  switch (action.type) {
    case 'itemAdded':
      return { ...state, items: [...state.items, action.item] };
    case 'itemRemoved':
      return { ...state, items: state.items.filter((item) => item.id !== action.id) };
    default:
      return state;
  }
}

🤔 Common Confusions

❓ Is Redux outdated?

Classic handwritten Redux ceremony is outdated for most teams, but the Redux model is still important and Redux Toolkit remains widely used in large applications.

❓ Should server state live in Redux by default?

Usually no. Teams now separate client state from server cache more intentionally and often use React Query or RTK Query for async data.

🚨 Common Production Issues

A global store becomes a dumping ground when ownership boundaries are weak.

Overly broad selectors cause unnecessary renders across large screens.

Duplicating server data and UI state in the same store creates conflicting truths quickly.

✅ Best Practices

Use Redux only when centralized state and conventions genuinely help.

Normalize entities and derive views through selectors.

Keep reducers pure and state serializable.

Prefer Redux Toolkit for real implementations instead of handwritten classic Redux boilerplate.

🏛️ Architect's Note

Senior Architect's Perspective

Redux is strongest when state logic itself is one of the hard problems in the product. If the complexity is mostly data fetching, local UI state, or small-team app flow, lighter tools are often a better fit.

💬 Frequently Asked Questions

Why still teach Redux if Redux Toolkit exists?

Because Redux Toolkit builds on Redux concepts. Without understanding actions, reducers, and centralized event flow, teams often misuse the higher-level tooling.

🎯 Key Takeaways

1Redux is a centralized event-driven state model.
2The conceptual model still matters even if Redux Toolkit is the modern API.
3Not every React app should use Redux.
4State ownership and selector discipline matter more than store size alone.

🎯 Practice this topic in interviews

↗ Where this topic fits

Sources

Sources / References

Use these React references to verify the concept in official docs and continue into the most relevant SplashRide pages.

Related SplashRide pages

SplashRide React learning path

Browse the full React topic collection and learning order on SplashRide.

React Interview Prep

Practice React interview questions and scenario-based answers.

Frontend Engineer Career Path

A beginner-friendly journey through web foundations, React, production frontend engineering, and interview preparation.

Python Developer Career Path

A practical route through Python fundamentals, automation, backend basics, testing, projects, interview preparation, and career growth.

Redux Toolkit

Master Redux Toolkit — the modern, opinionated way to write Redux. Learn slices, thunks, RTK Query, and when Redux is actually the right choice for enterprise React applications.

Zustand

Master Zustand — the lightweight, modern state management library that most teams should use instead of Redux. Learn store design, selectors, persistence, and enterprise patterns.