данные, которые получаем единожды - например при авторизации пользователя(полномочия, роли и тд)?
В контексте использования ngrx.
Соль в том, что например если хранить в сторе и ходить туда за данными, то происходит некий копипаст Input в тупых компонентах которые со сторой не общаются - контейнер имеет селектор и раздает компонентам ввиде Input это значение.
Плюс если понадобится использовать этот селектор в самом контейнере, то придется делать подписку, что тоже не айс.
Была идея делать сервисы и записывать в них эти данные ввиде просто полей класса - и далее везде где это нужно просто инжектить сервис и брать его поле.
Кто имеет мысли по этому поводу?
конкретно касательно пермишеннов и данного контекста, была идея реализовать патерн мутатор для таких штук, который бы докидывал св-ва (пермишенов в частности) в компонент, инициализируя значениями либо из стора либо из сторейджа. По сути это декоратор + миксин. Но увы такую штуку ts не умеет понимать Делал в итоге input permissions у тупых компонентов, селектя в компоненте контейнере (в принципе то что вы и описали). Ну селектор делал дженериком засовывая в него модель с конкретным набором пермишенов для компонента/модуля, чтобы селекторы не плодить
Суть понял, спасибо за ответ. Есть вариант сделать токены под это, токен юзает сервис и токен уже инжектить в компоненты вместо сервиса
В продолжении идеи, которую я озвучил касаемо токена, выходит довольно логично. В целом стора по логике используется для реиспользования данных которые могут изменяться, тем более что селекторы это Observable. Идея следующая - постоянные данные вообще не хранить в стор, а хранить в токене. Есть сервис который дергает апи, далее пишет в свое внутреннее поле либо в свой BehaviorSubject данные, у сервиса есть геттер который вернет эти данные, в core модуле провайдится токен, который использует сервис через useFactory и геттер. И далее, во всем приложении в любых местах - контейнеры / компоненты / эффекты / сервисы - просто инжектится токен.
Обсуждают сегодня