где-то 50 подписываются на одни и те же селекторы NgRx store.
Задача: избавиться от дублирования кода. Зачем по сто раз подписываться на одно и то же, если можно создать хотя бы видимость соблюдения приципов Бритвы Оккама, DRY, KISS, OBAMA и AMOGUS?
Возможные решения:
1. Есть смысл сделать абстрактный компонент-родитель, который подписывается на некоторые селекторы из NgRx store? Все дочерние компоненты автоматом получают готовые поля классов в виде Observable. Круто, конечно!
2. Или, само собой, лучше как-то сделать это через DI, чтобы в каждый компонент инжектились данные селектора? Дело в том, что я не очень хорошо умею писать DI. Где копать по теме шаринга селекторов NgRx через DI?
фасад сервис
обама и амогус это прикол или правда такие есть?
Он уже есть у меня, называется CommunicationService. Но параллельно начал использоваться NgRx, я понял его концепт, и мне он показался удобнее и гибче. Не хочу иметь две сущности - фасад и NgRx store для одной и той же задачи.
Получается, я меняю шило на мыло, и мне в любой случае в каждом компоненте надо будет писать что-то типа: foo$ = this.store.select(selectFoo); bar$ = this.store.select(selectBar); по 50 раз во всех компонентах? Как-то не очень, мне кажется. Или это норм?
Вообще, это прикол. Но не факт, что на Медиуме нет статьи с таким акронимом, и ваши сомнения это подтверждают...
По моему норм :) если много селекторов можно один комбинированный сделать
Да-а-а-а, наверное, так и сделаю тогда уж...
не используй стор в компоненте, не имей один общий сервис, не имей папку сервисы
почему плохо иметь папку сервисы?
потому что они между собой не связаны одной идеей, папка-помойка
идея - управление логикой. если 1или более сервисов используется в нескольких компонентах, которые не находятся структурно рядом, то где они должны лежать? кроме как папки серви
управление логикой это что по твоему?
получение информации с Бэка
это не идея а техническая деталь
это как пример, туда можно еще отнести хранение внутреннего состояния
это тоже технические детали
Если у тебя сервис юзается только в определенном модуле или компоненте, то зачем выносить его в shared ?
Обсуждают сегодня