Хук React useContext— это мощный инструмент для обмена состоянием между компонентами без необходимости передавать данные через длинную цепочку реквизитов. С помощью useContextвы можете легко обмениваться состоянием по всему дереву компонентов, что делает его полезным инструментом для управления глобальным состоянием.
В этой статье мы рассмотрим основы хука useContextи посмотрим, как мы можем использовать его для управления состоянием в наших приложениях React.
useContext?useContext— это встроенный хук React, который позволяет вам использовать данные из контекста, созданного родительским компонентом. Контекст — это объект, содержащий некоторые общие данные о состоянии, к которым может получить доступ любой компонент, являющийся потомком компонента, создавшего контекст.
Хук useContextпринимает объект контекста в качестве аргумента и возвращает текущее значение этого контекста. Это означает, что любые обновления контекста автоматически вызовут повторный рендеринг всех компонентов, которые его потребляют.
useContext?Чтобы использовать useContext, нам сначала нужно создать объект контекста. Мы можем сделать это, используя createContextметод из Reactбиблиотеки. Вот пример:
import React from 'react';
const MyContext = React.createContext();
import React from 'react';
const MyContext = React.createContext();
function App() {
const [count, setCount] = React.useState(0);
return (
<MyContext.Provider value={{ count, setCount }}>
<div>
<h1>Count: {count}</h1>
<Counter />
</div>
</MyContext.Provider>
);
}
function Counter() {
const { count, setCount } = React.useContext(MyContext);
const increment = () => {
setCount(count + 1);
};
return (
<div>
<button onClick={increment}>Increment</button>
</div>
);
}
Компонент Appоборачивает свои дочерние компоненты в MyContext.Providerкомпонент и передает текущее значение общего состояния в качестве реквизита value. В этом случае значение представляет собой объект, содержащий countсостояние и setCountфункцию.
Компонент Counterпотребляет MyContextобъект с помощью useContextловушки и извлекает countсостояние и setCountфункцию из объекта контекста. Затем мы используем incrementфункцию для обновления общего состояния при нажатии кнопки.
useContext?useContextнаиболее полезен для управления глобальным состоянием, к которому должны обращаться несколько компонентов приложения. Это хороший выбор для тех случаев, когда сверление пропеллеров будет громоздким или когда вы хотите избежать передачи состояния через несколько слоев компонентов.
useContextтакже является хорошим выбором для случаев, когда вам нужно передать функции вниз по дереву компонентов. Передавая функцию через объект контекста, вы можете избежать ее прохождения через несколько уровней компонентов.
Хук useContext— это мощный инструмент для управления глобальным состоянием.
Надеюсь, это многое вам объяснит.
Введение Инсульт — это неотложная медицинская помощь, которая может случиться с кем угодно в любое время. Это происходит, когда приток крови к части мозга нарушается, что приводит к внезапной потере функции мозга.
На этой неделе я получил электронное письмо от участника ежедневного списка рассылки. Они хотели знать: какие ресурсы вы посещаете ежедневно, еженедельно и ежемесячно? Отличный вопрос! Я рад поделиться некоторыми мыслями о моем рабочем процессе и основных ресурсах, которые я использую.
Введение: Добро пожаловать, смелые читатели, в путешествие, которое приведет нас в самые темные глубины нашей планеты. В этом блоге мы погружаемся в загадочный мир Марианской впадины, раскрывая его скрытые секреты и открывая леденящие кровь истины, которые лежат под его поверхностью.
Мы часто обнаруживаем, что изо всех сил пытаемся реализовать то, что, как мы знаем, полезно для нас. От того, чтобы сказать значимому другому, что мы любим его, до того, чтобы помнить, что нужно говорить как пират, всегда будут те, кто утверждает, что день, неделя или месяц событий не нужны, потому что они уже делают эти вещи.
В сегодняшнем быстро развивающемся бизнес-ландшафте концепция гибридной и удаленной работы приобрела беспрецедентный импульс. Поскольку компании продолжают приспосабливаться к меняющимся потребностям и ожиданиям своих сотрудников, эксперты из разных областей собрались вместе, чтобы обсудить преимущества, проблемы и будущее этого преобразующего способа работы.
[Предупреждение: в этом эссе есть снимки экрана, на которых люди восхваляют убийцу Джордана Нили.] Сотрудники правоохранительных органов наконец — и, возможно, неохотно — предъявили обвинение в этом убийстве Дэниелу Пенни, человеку, который душил Джордана Нили, пока тот не умер.