intermediate

Provider pattern

Expose scoped context для cross-tree dependencies, ограничивая provider breadth, update frequency и hidden coupling.

Provider отдаёт зависимости или конфигурацию поддереву через React Context — theme, auth session, feature flags, query clients. Ограничивайте breadth и частоту обновлений, чтобы избежать rerender storms. Делите contexts по change rate, когда одно volatile значение инвалидирует всё дерево.

На интервью: разделение context для auth и theme. Тесты с wrapper providers и mock context values.

Типовые ошибки: mega-context ререндерит всё приложение; быстро меняющиеся данные без selectors; глубокая вложенность providers без документации.

Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.

Чеклист:

  • Context value мемоизирован, если важна identity объекта.
  • Отдельные stable и volatile contexts.
  • Consumer hooks падают вне provider.
  • Документируйте размещение provider в дереве.