Ответ
Плюсы:
- Централизованное состояние – управление состоянием в одном месте упрощает отладку и логику.
- Предсказуемость – изменения происходят через чистые функции (редьюсеры).
- Инструменты разработчика – Redux DevTools позволяют отслеживать изменения и откатывать состояние.
- Масштабируемость – подходит для больших приложений с множеством компонентов.
Минусы:
- Избыточность – требует много шаблонного кода (actions, reducers, store).
- Кривая обучения – сложен для новичков из-за концепций (иммутабельность, middleware).
- Производительность – неоптимален для частых мелких обновлений (можно решить с помощью RTK).
Пример:
// Action
const increment = () => ({ type: 'INCREMENT' });
// Reducer
const counter = (state = 0, action) => {
switch (action.type) {
case 'INCREMENT': return state + 1;
default: return state;
}
};
// Store
const store = createStore(counter);
store.dispatch(increment()); // State: 1