Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

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

Зачем нужен State Manager и Контекст? Почему просто не создавать переменные?

Вопрос проверяет понимание управления состоянием в приложениях, особенно в React.

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

  • Глобальные переменные – не вызывают перерендер, сложно отслеживать изменения.

  • Контекст (Context) – удобен для передачи данных без пропс-дриллинга.

  • State Manager (Redux, MobX) – предсказуемость, время-путешествие (debug), масштабируемость.

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

1. Проблема глобальных переменных

let user = null;  

// Компонент A  
user = { name: 'Alice' };  

// Компонент B  
console.log(user); // Иногда актуально, иногда нет  

Проблемы:

  • React не узнает об изменении переменной → нет перерендера.

  • Сложный контроль зависимостей.

2. Решение: React Context

Передает данные через дерево компонентов без явной передачи пропсов.

Пример:

const UserContext = createContext();  

function App() {  
  	const [user, setUser] = useState(null);  
  	return (  
    		<UserContext.Provider value={{ user, setUser }}>  
      			<Header />  
    		</UserContext.Provider>  
  	);  
}  

function Header() {  
  	const { user } = useContext(UserContext);  
  	return <div>{user?.name}</div>;  
}  

Плюсы:

  • Избегаем пропс-дриллинг (A → B → C → D).

  • Локальный стейт на уровне приложения.

Минусы:

  • Перерендер всех потребителей при изменении.

3. State Manager (Redux, MobX, Zustand)

Пример Redux:

// Store  
const store = configureStore({ reducer: userReducer });  

// Компонент  
const user = useSelector(state => state.user);  

Зачем?

  • Централизованное состояние – один источник правды.

  • Инструменты разработчика – логирование, откат действий.

  • Оптимизации – точечные подписки на изменения.

Вывод:

  • Для малых проектов хватит Context.

  • Для сложных – Redux/Zustand.

  • Глобальные переменные – только для статичных данных.

Уровень

  • Рейтинг:

    5

  • Сложность:

    5

Навыки

  • Redux

    Redux

  • React

    React

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

#redux

#state

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