2017-10-07 4 views
4

Nous sommes les développeurs d'un module d'une grande application angulaire. Les modules sont indépendants les uns des autres, ils sont développés par des équipes distinctes. Nous aimerions utiliser un magasin ngrx dans notre module.Plusieurs magasins ngrx dans une application

Un autre module possède déjà un magasin ngrx. Si j'essaie d'ajouter un magasin à notre module.ts de la manière habituelle:

@NgModule({ 
    imports: [ 
    ... 
    StoreModule.provideStore(...) 
    ], 
    ... 

il casse toute l'application. Est-il possible de fournir un magasin séparé pour notre module?

(app utilise ngrx2)

+0

Utilisez ngrx v4 et StoreModule.forFeature() –

Répondre

1

Vous pouvez diviser le magasin jusqu'à, pour un, vous pouvez avoir un magasin de base pour charger avec le module d'application au démarrage à l'aide forRoot en ajoutant metaReducers et initialState à elle

StoreModule.forRoot(reducers, {metaReducers: metaReducers, initialState: getInitialState}) 

et pour les modules lazyloaded vous pouvez les ajouter plus tard au magasin à l'aide

StoreModule.forFeature('gallery', reducers, {initialState: getGalleryInitialState}) 

-chargement paresseux est une nouvelle fonctionnalité pour ver-4, je ne pense pas que ver-2 supports vous divisant r états, je mise à niveau juste pour les sélecteurs, ils aident à réduire le code et améliorer les performances en savoir plus sur eux here