Всем привет! Пытаюсь настроить ngrx.
У меня есть некий корневой main.component в котором отрисовываются новостные блоки/ленты, они так же представлены отдельными компонентами.
Выглядит это примерно так:
<div class="main-wrap">
<app-main-news
*ngIf="mainNewsEnable"
[data]="mainNewsData"
>
</app-main-news>
<app-top-news
*ngIf="topNewsEnable"
[data]="topNewsData"
>
</app-top-news>
<app-feed-news
*ngIf="feedNewsEnable"
[data]="feedNewsData"
>
</app-feed-news>
</div>
Есть API в котором приходит большой объект в котором содержится контент для всех новостных блоков/лент, а также флаги для того чтобы отображать/скрывать эти блоки.
Формат API примерно такой:
{
"mainNewsEnable": true,
"topNewsEnable": false,
"feedNewsEnable": true,
"mainNewsData": {...},
"topNewsData": {...},
"feedNewsData": [{...}, {...}],
}
как здесь правильно раздавать данные?
- Если отталкиваться от того что приходит в API, то main.component должен получить все данные от сервера и после этого раздать их через входные параметры дочерним компонентам (так как уже описано).
в ngOnInit я делаю
this.store.dispatch(new GetNewsAction())
this.allNewsData$ =
this.store.select(store => store.allNews);
this.allNewsData$.subscribe(data => { .... })
забираю полученные данные и раздаю далее вниз по иерархии
- Или же в ngOnInit main.component просто иницировать запрос к серверу, а дальше через дочерние компонеты стучать к store и забирать через
this.store.select данные необходимые только для этого компонента?