Контекст в React

В React контекст предоставляет механизм для передачи данных вниз по иерархии компонентов без явной передачи пропсов через каждый уровень. Контекст позволяет создать “глобальные” данные, которые могут быть доступны любому компоненту внутри определенного контекста.

Создание контекста

Для создания контекста в React используется функция createContext(). Она возвращает объект, который содержит провайдер и потребитель контекста.

JSX
// Создание контекста
const MyContext = React.createContext();

// Провайдер контекста
<MyContext.Provider value={/* значение контекста */}>
  {/* Вложенные компоненты */}
</MyContext.Provider>

Использование контекста

Для использования контекста в компонентах используется компонент Consumer или хук useContext().

JSX
// Компонент, использующий контекст
<MyContext.Consumer>
  {value => (
    // Использование значения контекста
    <div>{value}</div>
  )}
</MyContext.Consumer>

// Хук useContext()
const value = useContext(MyContext);

Передача значения контекста

Значение контекста передается через value в провайдере контекста. Все компоненты, вложенные в провайдер, получают доступ к этому значению.

JSX
const App = () => {
  return (
    <MyContext.Provider value="Значение контекста">
      <ChildComponent />
    </MyContext.Provider>
  );
};

Потребители контекста по умолчанию

Если компонент не найдет соответствующего провайдера контекста в своей иерархии, то он будет использовать значение по умолчанию, указанное при создании контекста.

JSX
// Создание контекста с значением по умолчанию
const MyContext = React.createContext("Значение по умолчанию");

// Компонент без провайдера
const ChildComponent = () => {
  const value = useContext(MyContext);
  return <div>{value}</div>; // Выводит "Значение по умолчанию"
};

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


Опубликовано

в

от

HTML 5

Гиперссылки в HTML

Изучите создание гиперссылок в HTML с помощью тега . Узнайте, как создавать ссылки на другие веб-страницы, файлы и разделы на странице.

HTML 5

Теги в HTML

Узнайте о различных тегах HTML и их ролях в создании веб-страниц. Освойте основные и расширенные теги для разметки контента.

React

CSS-модули в React

Изучите, как использовать CSS-модули в React-приложениях для создания локальных стилей компонентов и изоляции CSS-правил.

JavaScript

Аутентификация в веб-приложениях на JavaScript

Узнайте, как реализовать аутентификацию и авторизацию пользователей в веб-приложениях на JavaScript для обеспечения безопасности и контроля доступа.

JavaScript

Область видимости var и let в JavaScript

Узнайте, как ключевые слова var и let определяют область видимости объявленной переменной в языке программирования JavaScript.

React

Работа с асинхронными запросами в React с использованием npm-пакетов: Axios, Fetch и другие

Узнайте, как использовать npm-пакеты, такие как Axios и Fetch, для выполнения асинхронных запросов данных в React-приложениях.

Реактивные интерфейсы на Vue.js

Изучите фреймворк Vue.js и создавайте реактивные интерфейсы для ваших веб-приложений на JavaScript.

React

Состояние и свойства в React: Управление данными компонентов

Узнайте, как управлять состоянием и свойствами компонентов в React и создавать динамические интерфейсы.