Проверяет понимание однонаправленного потока данных в Redux и умение объяснить полный цикл от действия до обновления компонента.
Redux — это библиотека для управления состоянием, которая использует однонаправленный поток данных. Это означает, что данные всегда движутся по одному кругу: компонент → action → reducer → store → компонент. Такой подход упрощает отладку и делает поведение приложения предсказуемым.
dispatch(action) — это единственный способ изменить состояние.type и, опционально, payload.subscribe.connect или useSelector, получают обновленные данные и перерисовываются.// Action creator
const addTodo = (text) => ({
type: 'ADD_TODO',
payload: text
});
// Reducer
const todosReducer = (state = [], action) => {
switch (action.type) {
case 'ADD_TODO':
return [...state, { text: action.payload, done: false }];
default:
return state;
}
};
// Компонент
const TodoInput = ({ dispatch }) => {
const handleSubmit = (e) => {
e.preventDefault();
dispatch(addTodo(inputValue));
};
return <form onSubmit={handleSubmit}>...</form>;
};
// Подключение
const mapDispatchToProps = { addTodo };
export default connect(null, mapDispatchToProps)(TodoInput);Однонаправленный поток упрощает отслеживание изменений: вы всегда знаете, откуда пришли данные и как они изменились. Это особенно полезно в больших приложениях, где много компонентов обмениваются состоянием. Redux также поддерживает middleware (например, Redux Thunk или Saga) для асинхронных действий, но базовый поток остается неизменным.
Итог: Redux стоит применять, когда состояние приложения становится сложным и требует предсказуемого управления. Он особенно полезен в крупных проектах с множеством взаимодействующих компонентов, где важно централизованное хранение данных и четкая логика их изменения.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию