Ответ
Redux — это библиотека для управления состоянием приложения. Она основана на принципах Flux и использует однонаправленный поток данных.
Основные концепции:
- Store — единый источник правды, хранит состояние всего приложения.
- Actions — простые объекты, описывающие изменения (например,
{ type: 'ADD_TODO', payload: 'Learn Redux' }
). - Reducers — чистые функции, которые принимают текущее состояние и action, возвращают новое состояние.
Пример:
const initialState = { todos: [] };
function todoReducer(state = initialState, action) {
switch (action.type) {
case 'ADD_TODO':
return { ...state, todos: [...state.todos, action.payload] };
default:
return state;
}
}
const store = createStore(todoReducer);
store.dispatch({ type: 'ADD_TODO', payload: 'Learn Redux' });
Плюсы:
- Предсказуемость (изменения только через actions).
- Централизованное состояние.
- Легко тестировать (редьюсеры — чистые функции).
Минусы:
- Избыточность для простых приложений.
- Boilerplate-код.
Для современных проектов часто используют Redux Toolkit, который упрощает настройку.