Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Redux: redux

Расскажи про Flux, как данные в стор попадают

Вопрос проверяет знание архитектуры Flux и её отличий от других подходов (например, Redux или MVC).

Короткий ответ

Flux — это архитектура для управления состоянием в приложениях. Данные попадают в стор (хранилище) так:

  1. Компонент вызывает действие (Action).

  2. Dispatcher получает действие и передаёт его всем сторам.

  3. Стор обновляет свои данные и оповещает компоненты.

  4. Компоненты перерисовываются с новыми данными.

Длинный ответ

Основные части Flux

  1. Action — объект с типом (type) и данными (payload), который описывает, что произошло (например, { type: 'ADD_TODO', text: '...' }).

  2. Dispatcher — центральный «диспетчер», который передаёт действие всем сторам.

  3. Store — хранилище данных (как state в Redux). Слушает действия и обновляется.

  4. View (React-компоненты) — отображает данные из стора и запускает действия.

Как данные попадают в стор?

  1. Пользователь кликает кнопку в компоненте:

    <button onClick={() => addTodo('Купить молоко')}>Добавить</button>
  2. Компонент вызывает action creator:

    function addTodo(text) {
    	AppDispatcher.dispatch({
    		type: 'ADD_TODO',
    		text: text
    	});
    }
  3. Dispatcher отправляет действие всем сторам:

    // Пример стора (TodoStore)
    TodoStore.dispatchToken = AppDispatcher.register(action => {
    	switch (action.type) {
    		case 'ADD_TODO':
    			_todos.push({ text: action.text, completed: false });
    			TodoStore.emitChange(); // Оповещаем компоненты
    			break;
    	}
    });
  4. Компоненты подписаны на изменения стора и обновляются:

    TodoStore.addChangeListener(this._onChange);

Flux vs Redux

  • В Redux один стор, а в Flux — несколько.

  • В Redux нет Dispatcher, его заменяет редюсер (reducer).

  • Flux проще для маленьких приложений, Redux — для сложных.

Пример Flux-архитектуры

// Dispatcher
const AppDispatcher = new Flux.Dispatcher();
// Store
const TodoStore = {
	_todos: [],
	emitChange() { /* Оповещение компонентов */ },
	addChangeListener(callback) { /* Подписка */ }
};
// Action
function addTodo(text) {
	AppDispatcher.dispatch({ type: 'ADD_TODO', text });
}
  • key в React должны быть стабильными — рандомные значения ломают логику обновлений.

  • Flux — это однонаправленный поток данных: Action → Dispatcher → Store → View.

  • Стор обновляется только через действия, что делает код предсказуемым.

Уровень

  • Рейтинг:

    3

  • Сложность:

    8

Навыки

  • Redux

    Redux

Ключевые слова

#redux

Подпишись на React Developer в телеграм