DEV Community

Aman Kureshi
Aman Kureshi

Posted on

πŸ—‚οΈ useReducer in React β€” A Smarter Alternative to useState

The useReducer hook is used when your state logic becomes complex or when multiple values depend on each other. It works similar to reducers in Redux.

🎯 Why use useReducer?
β€’ Manages complex state in a cleaner way
β€’ Groups state updates with actions
β€’ Easier to debug compared to multiple useState calls

πŸ”§ Example:

import { useReducer } from "react"; const initialState = { count: 0 }; 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, initialState); return ( <> <p>Count: {state.count}</p> <button onClick={() => dispatch({ type: "increment" })}>+</button> <button onClick={() => dispatch({ type: "decrement" })}>-</button> </> ); } 
Enter fullscreen mode Exit fullscreen mode

πŸ“Œ Key points:
β€’ useReducer(reducer, initialState) returns [state, dispatch]
β€’ dispatch is used to trigger state changes
β€’ Great for counters, forms, or any complex state logic

Top comments (0)