Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про React: context

Как создать глобальное состояние с помощью Context API?

Этот вопрос проверяет понимание работы с Context API в React для управления глобальным состоянием.

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

Context API — это способ передачи данных через дерево компонентов без необходимости передавать их через пропсы на каждом уровне. Для создания глобального состояния вы создаете контекст с помощью React.createContext(), оборачиваете ваши компоненты в провайдер, а затем используете useContext для доступа к данным в любом дочернем компоненте.

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

Context API в React предоставляет способ управления глобальным состоянием и передачи данных через дерево компонентов, избегая необходимости передавать их через каждый уровень с помощью пропсов. Это особенно полезно в больших приложениях, где одно и то же состояние или данные должны быть доступны в нескольких компонентах на разных уровнях иерархии.

Чтобы создать глобальное состояние с использованием Context API, выполните следующие шаги:

  1. Создайте контекст:

import React, { createContext, useState } from 'react'; 
const GlobalContext = createContext(); // Создаем контекст
  1. Создайте провайдер для управления состоянием:

const GlobalProvider = ({ children }) => {
  	const [state, setState] = useState({ user: null });  
  
  	const updateUser = (user) => {
     		 setState({ user }); // Функция для обновления состояния  
  	};  
  
  	return (  
    		<GlobalContext.Provider value={{ state, updateUser }}>    
      			{children}    
    		</GlobalContext.Provider>  
 	 ); 
};

Здесь GlobalProvider хранит состояние и функции для его обновления и предоставляет их через GlobalContext.Provider.

  1. Используйте провайдер в вашем приложении:

function App() {
  	return (  
    		<GlobalProvider>    
      			<ComponentA />    
    		</GlobalProvider>  
    	); 
}
  1. Получите доступ к данным контекста в дочерних компонентах:

import React, { useContext } from 'react'; 

function ComponentA() {
   	const { state, updateUser } = useContext(GlobalContext);
   	// Используем useContext для доступа к состоянию  
   
   	return (  
     		<div>   
        		<p>Пользователь: {state.user ? state.user.name : 'Нет данных'}</p>      
        		<button onClick={() => updateUser({ name: 'Иван' })}>Обновить пользователя</button>    
     		</div>  
   	); 
}

В этом примере ComponentA использует useContext, чтобы получить доступ к глобальному состоянию и функции updateUser. Когда пользователь нажимает кнопку, состояние обновляется, и все компоненты, подписанные на этот контекст, будут перерисованы с новыми данными.

Context API упрощает управление глобальным состоянием, устраняя необходимость в prop drilling

Уровень

  • Рейтинг:

    2

  • Сложность:

    3

Навыки

  • React

    React

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

#context

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