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

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

в оф доке реакта про контекст в примерах все показано через state, что если мы хотим что-то поменять в контексте, то нам надо через конекст прокидывать callback на изменение state и только потом поменяется context, получается что без корневого state мы в контексте не сможем поменять данные????
и вопрос в догонку про редакс, как мы знаем, редакс работает на контекстах, получается там скорее всего такая же логика, что при изменении стора, у нас перерисовывется корневой элент и за ним все остальные, но там уже нам помогает coonect не перерисовывать лишний раз компоненты, у которых пропсы не поменялись?
  • Вопрос задан
  • 188 просмотров
Подписаться 1 Средний 4 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Merion Academy
    Frontend-разработка на React
    4 месяца
    Далее
  • ProductStar
    React: отточите навыки интерфейсной разработки
    6 недель
    Далее
Решения вопроса 1
kleinmaximus
@kleinmaximus
Senior Full-stack Javascript Developer
Провайдер контекст транслирует дочерним компонентам какое-то значение.

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

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

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

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽
ITK academy Казань
от 50 000 до 90 000 ₽