KristinaKac / meetup_2

0 stars 0 forks source link

Импорты feature-сторов #2

Closed Anna-Prokhorova closed 2 months ago

Anna-Prokhorova commented 2 months ago

Концепт такой, что feature-store должен создаваться в момент того как создается модуль где этот "подстор" используется, чтоб не занимать память. Юзер вообще может не зайти в раздел с пользователями, тогда зачем инитить для этого раздела feature-store. С этим как раз могут помочь грамотные импорты -- каждый feature store импортится только в тот модуль где он будет юзаться. Поэтому эти строчки надо вынести в соответствующие им модули (касается и редьюсеров и эффектов). https://github.com/KristinaKac/meetup_2/blob/fb63bf38da7be6b2f7eabf86d32f81b48ab344c0/src/app/app.module.ts#L45-L48

А в app.module останется только

EffectsModule.forRoot([]),
StoreModule.forRoot({}),
StoreDevtoolsModule.instrument({ maxAge: 25 }),
annzolotareva commented 2 months ago

Ещё можно для каждого стора сделать свой модуль, импортировать уже их в модули компонентов, где они используются. Пример модуля стора компонента ItemComoponent: import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { StoreModule } from '@ngrx/store'; import { EffectsModule } from '@ngrx/effects'; import { mapReducer } from './item.reducer'; import { ItemEffects } from './item.effects';

@NgModule({ imports: [ CommonModule, StoreModule.forFeature('item', itemReducer), EffectsModule.forFeature([ItemEffects]), ], }) export class ItemStoreModule {}

KristinaKac commented 2 months ago

https://github.com/KristinaKac/meetup_2/commit/22f1fdf8c0050f783dc0d1bd024d3019685d2c4f