Lesson 27/100

Tutorials React.js Tutorial

useReducer — Complete Guide

useReducer — Complete Guide: free step-by-step lesson with examples, common mistakes, and interview tips — part of React.js Tutorial on Toolliyo Academy.

On this page

React.js Tutorial · Lesson 27 of 100

useReducer

BeginnerIntermediateAdvancedProfessional

Beginner · 1 — Learn by example · ~6 min · Module 3: Forms & Hooks

What is this?

useReducer manages complex state with a reducer function: (state, action) => newState. Like useState but better when updates follow clear action types.

Why should you care?

Forms with many fields, wizards, and shopping carts often have predictable update rules — dispatch({ type: "ADD_ITEM", payload }) keeps logic in one place.

See it live — copy this example

Paste into src/App.jsx (or the file noted in the steps). Save and watch the browser update.

import { useReducer } from 'react';

function reducer(state, action) {
  switch (action.type) {
    case 'increment': return { count: state.count + 1 };
    case 'decrement': return { count: state.count - 1 };
    default: return state;
  }
}

function Counter() {
  const [state, dispatch] = useReducer(reducer, { count: 0 });
  return (
    <>
      <p>{state.count}</p>
      <button onClick={() => dispatch({ type: 'increment' })}>+</button>
    </>
  );
}

Run Example »

Edit the code and click Run to see the result update live.

Code
Result

What happened?

  • All update logic lives in reducer.
  • Components only dispatch actions.
  • Easier to test reducer in isolation.

Try it yourself

  1. Define action types as strings or constants.
  2. Write reducer with switch or if.
  3. Replace multiple related useState with one useReducer.
  4. Change text or labels in the example and save — watch the browser update.
  5. Break the code on purpose (remove a bracket), read the error message, then fix it.

Remember

useReducer(reducer, initialState) → [state, dispatch]. Good for complex state transitions. Keep reducer pure — no side effects inside.

Questions on this lesson 0

Sign in to ask a question or upvote helpful answers.

No questions yet — be the first to ask!

React.js Tutorial
Course syllabus

React.js Tutorial

Module 1: React Basics & Setup
Module 2: Props, Events & Lists
Module 3: Forms & Hooks
Module 4: Routing & Data
Module 5: State & Authentication
Module 6: Architecture & React 19
Module 7: Performance
Module 8: Full-Stack & Real-Time
Module 9: Testing & Deployment
Module 10: ShopCart Projects
Toolliyo Assistant
Ask about tutorials, ebooks, training, pricing, mentor services, and support. I use public site content only—not admin or internal tools.

care@toolliyo.com

Need callback? Share your details