> Что такое Redux, зачем он нужен и как устроен (React)
Уровень: junior · Роль: frontend · Категория: Технические вопросы
Компании: БФТ
Стек: React
> Пример ответа
Redux - это предсказуемый контейнер состояния для JavaScript-приложений, чаще всего используемый с React. Он нужен для централизованного управления данными, когда состояние становится сложным: множество компонентов обмениваются информацией, а передача пропсов через несколько уровней (prop drilling) становится неудобной.
Как устроен Redux:
- Store - единственный объект, хранящий всё состояние приложения.
- Actions - простые объекты с полем
type, описывающие, что произошло (например,{ type: 'ADD_TODO', payload: 'Купить хлеб' }). - Reducers - чистые функции, которые принимают текущее состояние и action, и возвращают новое состояние. Они не мутируют исходное состояние, а создают его копию.
- Dispatch - метод store для отправки action в reducer.
- Selectors - функции для извлечения части состояния из store.
Зачем нужен:
- Единый источник правды (single source of truth) - состояние предсказуемо.
- Упрощает отладку (Redux DevTools позволяют путешествовать по истории изменений).
- Улучшает тестируемость - reducers и actions легко тестировать изолированно.
Пример простого использования с React:
JSX// reducerconst counterReducer = (state = { count: 0 }, action) => {switch (action.type) {case 'INCREMENT': return { count: state.count + 1 };default: return state;}};// storeconst store = createStore(counterReducer);// компонентfunction Counter() {const count = useSelector(state => state.count);const dispatch = useDispatch();return <button onClick={() => dispatch({ type: 'INCREMENT' })}>{count}</button>;}
Современная альтернатива - Redux Toolkit, который упрощает настройку store и уменьшает шаблонный код.
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью