Задать вопрос
vitaly_74
@vitaly_74

Чем отличаются между собой контекст и глобальная переменная?

Не понимаю в чем разница?
например мне гораздо проще создать глобальный класс с глобальной переменной (я понимаю что глобалки это плохо)
но все таки, контексты же делают тоже самое, понятно что контексты могут работать только в дочерних элементах.
я понимаю что через контексты можно передать состояние чего либо - но мне кажется это слишком усложняет логику, следовательно я бы назвал это антипаттерном. п.с. мне кажется и через глобавльную переменную можно передавать useState. подскажите что я упустил, и почему пользоваться контекстами лучше чем глобальными переменными.
п.с. работаю с nextJs
  • Вопрос задан
  • 101 просмотр
Подписаться 2 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
Alexandroppolus
@Alexandroppolus
кодир
0) Контексты могут быть вложенными. Компонент ищет ближайший провайдер. Это позволяет обернуть часть приложения в провайдер с другим значением, и такой кейс на глобальных переменных не сделать.

1) упомянутый в комментариях ререндер компонента с хуком useContext на борту. Но это если само значение контекста меняется. Часто бывает, что значение постоянное (классический пример - подключение редукса к реакту), далее подразумеваю этот случай.

2) DI для компонентов. Компоненты не резолвят сами свою зависимость, им её инжектят снаружи. Более гибко с т.з. архитектуры, тестируемости и т.д. Правда, с другой стороны, у компонента появляются неявные зависимости, но в контекст можно зашить значения по умолчанию.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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