Сводка
Я пишу React-Redux приложение и хотел бы создать службу , к которой можно обращаться через несколько компонентов со следующими характеристиками:
- Singleton (создается один раз во всем приложении)
- Injectable (может быть введен и использован,несколько компонентов в приложении)
- Redux Connected (может получить доступ ко всему дереву состояний Redux и получать обновления для изменений состояния)
Пример кода
Тип решения, который я имею в виду, позволит мне внедрить сервис в компонент React и использовать его следующим образом:
{ featureAvailabilityService.isAvailable('myFeature') && (<MyFeature />) }
Идеи
Я читал о Компоненты высокого порядка , Хуки и Context API .Также есть несколько интересных библиотек, таких как Unstated и Redux-Logic .Я чувствую, что лучший ответ, вероятно, лежит где-то между ними, но мог бы использовать некоторые рекомендации, чтобы поставить меня на правильный путь.
Вариант использования
В этом случае я хотел бы создать повторно используемуюсервис, в котором есть методы определения доступности определенных функций.Это включает в себя относительно сложную логику, основанную на конфигурации и состоянии системы, клиента и пользователя.Также требуется, чтобы служба имела доступ к состоянию из нескольких разных частей приложения.Он также будет широко использоваться в приложении.
Зачем нужен еще один вопрос по сервису React?
Я понимаю, что к этому уже есть много подобных вопросов, обычно от людей с ангулярным прошлым,ищу React, эквивалентный Angular Service.Тем не менее, я еще не нашел ответ, который предусматривает три вышеуказанных критерия ... или, по крайней мере, не тот, который я понял.
Спасибо за любой вклад.