Русский
Открыть в Telegram

ПостРодители и владельцы в React: провайдеры контекста

13 мая 2025
З
Заметки про React
Ссылка
нажмите — покажем
Родители и владельцы в React: провайдеры контекста Джулс Блом в своем блоге написала про то, что понимание того, как компоненты-родители (parent) и компоненты-владельцы (owner) влияют на обновление контекста, может помочь писать более производительные провайдеры контекста. Чтобы провайдеры контекста со стейтом были производительными, надо чтобы провайдер с логикой изменения стейта был отдельным компонентом и принимал children. Пример: function CounterProvider({ children }) { const [count, setCount] = useState(0); return ( <CounterContext.Provider value={count}> {children} </CounterContext.Provider> ); } function App() { return ( <CounterProvider> <CounterDisplay /> <UnrelatedComponent /> <Toolbar /> </CounterProvider> ) } Чтобы разобраться, почему провайдер контекста в этом примере производительный, сначала стоит разобраться что такое компоненты-родители и компоненты-владельцы: 🔴 компонент-родитель содержит дочерние компоненты и определяет структурные отношения (вложенность) между компонентами, например в App компонент CounterProvider является родителем для вложенных в него компонентов; 🔴 компонент-владелец рендерит другие компоненты и определяет функциональные отношения, вызывает рендеринг, например это компонент CounterProvider или App. Если вспомнить причины ре-рендеринга компонента, а это изменение стейта, обновление контекста и ре-рендер компонента-владельца, то становится понятно почему провайдер контекста стал производительнее. В CounterProvider логика со стейтом и при ее изменении будет происходить ре-рендер компонента CounterProvider и компонентов, которые подписаны на изменения контекста. При этом, компонент App не будет ре-рендерится, т.к. в нем нет изменений стейта. https://julesblom.com/writing/parent-owners-context
31 · 2.2K ·

Рядом в ленте

ЗЗаметки про ReactПоказ тостов через React Server Components В блоге Build UI показали пример, как, используя React Server Components, показывать всплывающие сообщения (тосты) наЗЗаметки про ReactReact Labs: View Transitions, Activity, и другое В React Labs представили два новых экспериментальных API: View Transitions и Activity. Подробнее о каждой из ни
это сообщение
ЗЗаметки про ReactTanStack DB TanStack представила новую библиотеку – TanStack DB – реактивный клиентский стор, с возможностью синка API запросов. Библиотека работает поверх TanSЗЗаметки про ReactУправление фокусом в React с помощью flushSync Установить фокус на инпуте сразу в React может оказаться не так просто, как кажется. При изменении стейта, React
ЗЗаметки про ReactЗаметки про React@ru_react_notes · канал · Технологии
3 412подписчиков491постов в индексе
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем