Când starea unei componente devine complexă (multiple sub-valori dependente sau fluxuri de tranziție de tip mașină de stări), useReducer oferă o separare curată între declanșarea acțiunilor (dispatch) și logica de transformare a stării.
Implementare useReducer cu Acțiuni Tipizate
type State = { count: number };
type Action = { type: 'increment' } | { type: 'decrement' } | { type: 'reset' };
function counterReducer(state: State, action: Action): State {
switch (action.type) {
case 'increment': return { count: state.count + 1 };
case 'decrement': return { count: state.count - 1 };
case 'reset': return { count: 0 };
}
}