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 в дереве.