который скомпоновал в себе несколько компонентов, сервисов и прочих сущностей для реализации некой фичи. Есть данные которые хранятся в виде behSub в *-data.service.ts, туда они приходят из *-http.service.ts.
Эти данные шарятся между компонентами этого модуля.
Вопрос следующий :
- имеет ли смысл подписываться в каждом компоненте на изменение стейта в сервисе или же прибегнуть к классическому варианту шаринга данных между компонентами , когда родитель подписывается на изменения стёйта и передаёт его в компоненты?
Если можно , то с пояснением когда можно делать так а когда так
Это зависит если ты хочешь делать все компоненты смарт
Или только один контейнер будет передавать инфу
Я хочу максимально упростить код, чтобы было как можно меньше подписок . Делать компоненты глупыми. Но опять таки я этим самым упускаю все прелести rxjs
Я бы все равно передавал через родителя, типа какой-нибудь <ng-container ngIf="data$ | async as data"> <c1 [data]="data"></> <c2 [data]="data"></>
Я думаю если дочерние компоненты не шарят родительский компонент, тогда надо делать отдельно подписку, а так через парент передавать
В каких то случаях я вижу в этом необходимость а в каких-то излишний проп. Не могу определиться , не могу найти баланс 😂
Что значит не шарят родителя?
Ну как в примере выше
Точнее на примере шарят))
В случае если в стриме придёт 0 или false ngIf сработает и даже не передаст значение
Нашёл способ как это обойти) но вот опять таки , это меня не устраивает
Ну это образно, я завел себе let-директиву
Это понятно. Но в целом мне кажется классический вариант передачи пропов делает код чище и интуитивно понятным, куда идут данные и для чего они нужны в компоненте. Иначе открываешь компонент 10 подписок или один пайплайн из 10 свитчей и начинаешь копаться в этой каше
какие именно прелести рхжс упускаются? :)
Свитчи мерджи комбайны мапы если условие по двум стримам идёт и прочее
Обсуждают сегодня