Добавить в корзинуПозвонить
Найти в Дзене
Фронтендер

Redux больше не нужен. React useContext

useContext позволяет вам считывать и подписываться на контекст, созданный с помощью createContext. Контекст — это способ передать данные через дерево компонентов без необходимости пропускать пропсы на каждом уровне. Сначала создайте контекст с помощью createContext. Укажите значение по умолчанию, которое будет использоваться, если нет Provider. Вызывайте useContext внутри вашего компонента для получения текущего значения контекста. Чтобы передать данные через контекст, используйте Context.Provider. Убедитесь, что Provider находится выше в дереве компонентов по сравнению с компонентами, которые используют useContext. 1. Передача данных глубоко в дерево Если Button находится внутри компонента, который обернут в ThemeContext.Provider, он получит значение "dark". 2. Обновление данных через контекст Передача функций и объектов через контекст может приводить к ненужным рендерам, если эти функции и объекты пересоздаются при каждом рендере. Убедитесь, что Context.Provider находится выше в дере
Оглавление

Что такое useContext?

useContext позволяет вам считывать и подписываться на контекст, созданный с помощью createContext. Контекст — это способ передать данные через дерево компонентов без необходимости пропускать пропсы на каждом уровне.

https://www.linkedin.com/pulse/usecontext-vs-redux-dudu-neto
https://www.linkedin.com/pulse/usecontext-vs-redux-dudu-neto

Как использовать useContext

Сначала создайте контекст с помощью createContext. Укажите значение по умолчанию, которое будет использоваться, если нет Provider.

-2

Вызывайте useContext внутри вашего компонента для получения текущего значения контекста.

-3

Как передать данные в контексте

Чтобы передать данные через контекст, используйте Context.Provider. Убедитесь, что Provider находится выше в дереве компонентов по сравнению с компонентами, которые используют useContext.

-4

Примеры использования

1. Передача данных глубоко в дерево

-5

Если Button находится внутри компонента, который обернут в ThemeContext.Provider, он получит значение "dark".

2. Обновление данных через контекст

-6

Оптимизация с useCallback и useMemo

Передача функций и объектов через контекст может приводить к ненужным рендерам, если эти функции и объекты пересоздаются при каждом рендере.

-7
-8

Распространенные ошибки и их исправление

Контекст не виден

Убедитесь, что Context.Provider находится выше в дереве компонентов, чем компонент, использующий useContext.

-9

Проблемы с дубликатами контекста

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

-10