useReducer — przewidywalne zarządzanie stanem
useReducer to alternatywa dla useState przy złożonym stanie z wieloma powiązanymi akcjami. Reducer to czysta funkcja (state, action) => newState. Logika aktualizacji stanu jest scentralizowana i testowalna w izolacji. Wzorzec znany z Redux.