useReducer est un hook qui gère un état complexe avec une fonction réductrice : (état, action) => nouvelEtat. On modifie l'état en envoyant des actions via dispatch. Il convient quand plusieurs valeurs évoluent ensemble ou que la logique de transition est élaborée ; le réducteur doit rester pur.
Exemple
const [etat, dispatch] = useReducer(reducer, { n: 0 });
dispatch({ type: 'incrementer' });