Контекст в React. useContext и вложенные Context.Provider

preview_player
Показать описание
Разберемся что такое prop drilling и как это фиксить, узнаем как работает контекст в React и как избежать лишних ререндеров при его использовании.

00:00 - Анонс последней темы в рамках серии React Hooks
00:33 - Prop Drilling
00:52 - Знакомство с кодом примера без использования контекста
02:39 - Почему Prop Drilling это плохо
04:09 - Отличия подходов наглядно на картинках
04:55 - Создание контекста и провайдера, немного о defaultValue
07:55 - useContext вместо Prop Drilling
11:13 - Особенности обращения к провайдеру, подробнее о defaultValue
14:06 - Почему Context API не может из коробки заменить стейт менеджер
15:39 - Разделение контекстов, MasterProvider
17:24 - Обзор кода финального примера
18:00 - Отличия перформанса финального примера с разделенным контекстом
19:13 - Итоги

GitHub Issues на тему ререндера контекста:
Рекомендации по теме
Комментарии
Автор

Спасибо огромное за мега крутое объяснение! На мой взгляд, для новичков оно сложновато, но если посмотреть несколько раз, то всё становится очень понятно. Да еще и такой нетривиальный подход осветили! Я в восторге!!! Еще раз безгранично благодарю! Надеюсь, что вы не перестанете снимать такой полезный контент! Удачи!🥰

elenaizmaylova
Автор

Очень круто! Продолжай, пожалуйста, снимать!

Максим-дущ
Автор

Все по полочкам, довольно интересно слушать =)

deanArtDev
Автор

Продолжай в том же духе, хорошо объясняешь!

ragnarkkr
Автор

А еще можно добавить оптимизацию одну: класть значение и изменение значения в разные провайдеры(them в один провайдер, а setTheme в другой) Эта фишка вообще к любым значениям применима. Ведь есть компоненты куда мы прокидываем например setTheme, а theme нет и будут лишние ненужные перерендеры.

avikbox
Автор

Для чего восклицательный знак в этой строчке? useContext ( context: MyContext)! [0];

JohPeach