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

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

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

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

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

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

Похожие вопросы