BeginnerCoder

Lesson 22 — Reducer state (expert)

Actions instead of setters

When state has several ways to change, useReducer keeps the rules in one place. A reducer is a function (state, action) => newState. Components only dispatch actions like "inc"; the reducer decides what each action does. Unknown actions return the state unchanged.

const [n, dispatch] = useReducer(reducer, 0);
<button onClick={() => dispatch("inc")}>+</button>

Note: Next.js pages are React components, so this preview runs your code with plain React in the browser. Next.js-only features (the file router, server rendering, data fetching on the server) are not running here — where a lesson needs them, it shows a small simulation instead.

Why it matters: as features grow, all state changes stay predictable and easy to test.

Want it another way?
Task

Teach the reducer a "dec" action (state - 1). Clicking +, +, − should show Count: 1.

← Back
Next →
Test your knowledge

A quick 3-question quiz on this lesson — instant feedback.

Enjoying this lesson? Share it.

Keep going with Next.js Foundations

Ready for more? Optional paid resources that pick up where this lesson leaves off.

Some links on this page are affiliate links: we may earn a commission at no extra cost to you. As an Amazon Associate I earn from qualifying purchases.