Из чего состоит Redux?
Продвинутые темы
Redux состоит из нескольких частей: store, actions, reducers, dispatch (и опционально middleware). Вместе они обеспечивают предсказуемый однонаправленный поток данных.
Составные части
Store
Единый объект-хранилище всего состояния. Даёт getState(), dispatch(), subscribe().
const store = configureStore({ reducer: rootReducer });Action
Обычный объект, описывающий «что произошло». Обязательно поле type:
{ type: 'cart/itemAdded', payload: { id: 1 } }Reducer
Чистая функция (state, action) => newState. Не мутирует состояние, возвращает новое.
function cartReducer(state = [], action) {
switch (action.type) {
case 'cart/itemAdded':
return [...state, action.payload];
default:
return state;
}
}Dispatch
Отправляет action в store, что запускает reducer и обновляет состояние.
Middleware (опционально)
Промежуточный слой между dispatch и reducer: логирование, асинхронность (redux-thunk, redux-saga).
Поток
dispatch(action) → middleware → reducer → новый state → подписчики (UI).
Коротко для собеседования
Части Redux: store (единое хранилище), actions (объекты с type), reducers (чистые функции обновления), dispatch (отправка action) и middleware (асинхронность, логи). Данные текут однонаправленно: action → reducer → state → UI.