angular - ¿Cuál es la diferencia entre StoreModule.forRoot() y StoreModule.forFeature()
ngrx-store ngrx-store-4.0 (2)
Recientemente, ngrx store cambió la forma de registrar las variables de la tienda en una aplicación angular.
¿Cuál es la diferencia entre StoreModule.forRoot () y StoreModule.forFeature ()
¿Necesitamos registrar ambos para que la aplicación funcione?
He encontrado la respuesta del siguiente blog.
https://blog.dmbcllc.com/ngrx-4-lazy-loading/
Siempre importar llamadas forRoot () Creo que esto es probablemente bastante obvio, pero solo para el registro, deberá asegurarse de que ya ha importado el almacén raíz y el módulo de efectos en su aplicación principal.
imports: [ StoreModule.forRoot({}), EffectsModule.forRoot([]), ...
Si tiene reductores o efectos que se aplican a este nivel, debe agregarlos aquí, pero incluso si no tiene ningún reductor o efecto en el nivel raíz de su aplicación, debe hacer estas dos llamadas. De lo contrario, las llamadas forFeature () no podrán acceder al almacén raíz ni a la ubicación del efecto para agregar los reductores y los efectos de la función.
Se utiliza con reductores de carga perezosa. Cuando tiene módulos de características (cargados de forma perezosa) y desea registrar reductores dentro de ese módulo, entonces utiliza forFeature
. De lo contrario, en tu AppModule
usas forRoot
.
ref: https://github.com/ngrx/platform/blob/master/docs/store/api.md#injecting-reducers