2017-09-21 1 views
7

최근에 ngrx 저장소가 각 응용 프로그램에서 저장소 변수를 등록하는 방법을 변경했습니다.StoreModule.forRoot()와 StoreModule.forFeature()의 차이점

StoreModule.forRoot()와 StoreModule.forFeature의 차이점은 무엇입니까()

우리는 모두 응용 프로그램 작업을하기 위해 등록해야합니까?

+0

[forRoot와'forChild'의 차이점에 대해 [Angular 단위의 일반적인 혼란을 피하십시오.] (https://blog.angularindepth.com/avoiding-common-confusionions-with-modules-in-angular-ada070e6891f) 'forRoot'와'forFeature'에 대해서도 같습니다. –

답변

4

lazy loaded reducers와 함께 사용됩니다. (게으른로드 된) 기능 모듈이 있고 해당 모듈 내에 축소기를 등록하려면 forFeature을 사용하십시오. 그렇지 않으면 AppModule에서 forRoot을 사용합니다.

심판 : 나는 다음과 같은 블로그

https://blog.dmbcllc.com/ngrx-4-lazy-loading/

항상 가져 오기 forRoot()에서 답을 찾을

1

https://github.com/ngrx/platform/blob/master/docs/store/api.md#injecting-reducers 내가이 아마 매우 명백하다고 생각 를 호출하지만, 단지 기록을 위해, 당신 주 응용 프로그램에서 이미 루트 저장소와 효과 모듈을 가져 왔는지 확인해야합니다.

imports: [ StoreModule.forRoot({}), EffectsModule.forRoot([]), ...

이 수준에서 적용 감속기 또는 효과가있는 경우 여기에 추가해야하지만, 당신이 응용 프로그램의 루트 레벨에있는 감속기 또는 효과가없는 경우에도이 필요 이 두 번의 전화를합니다. 그렇지 않으면 forFeature() 호출이 루트 저장소 나 영향 위치에 액세스 할 수 없으므로 기능에 대한 축소 기와 효과를 추가 할 수 없습니다.