Задать вопрос
@Maksum70
СТудент

Как работает react context?

в оф доке реакта про контекст в примерах все показано через state, что если мы хотим что-то поменять в контексте, то нам надо через конекст прокидывать callback на изменение state и только потом поменяется context, получается что без корневого state мы в контексте не сможем поменять данные????
и вопрос в догонку про редакс, как мы знаем, редакс работает на контекстах, получается там скорее всего такая же логика, что при изменении стора, у нас перерисовывется корневой элент и за ним все остальные, но там уже нам помогает coonect не перерисовывать лишний раз компоненты, у которых пропсы не поменялись?
  • Вопрос задан
  • 181 просмотр
Подписаться 1 Средний 4 комментария
Решения вопроса 1
kleinmaximus
@kleinmaximus
Senior Full-stack Javascript Developer
Провайдер контекст транслирует дочерним компонентам какое-то значение.

Это может быть состояние (реактивное и изменяемое), могут быть какие-то функции (например, для изменения состояния), может быть вообще просто нативный объект (например, какая-то конфигурация приложения, которую не нужно менять) или просто константа (ну, вдруг пнадобится). Тут все зависит от того, что требуется передать вниз по дереву компонентов.

Соответственно, если нужно что-то изменяющееся, отслеживаемое и реактивное, то да, надо передавать состояние (state провайдера) и без него никак.

Это очень похоже на Redux. Но не стоит беспокоиться, что на каждый чих провайдер будет перерисовывать все дерево. Просто детей надо передавать в провайдер через children. В таком случае при изменении стейта будут ререндериться только Consumer-ы этого контекста (или те компоненты, которые используют useContext).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 80 000 до 120 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽