Angular:Redux和延迟加载

时间:2018-09-06 19:57:07

标签: angular typescript redux

我正在将Redux与Angular一起使用的设计模式,我发现它非常有用,但是redux和延迟加载又如何在一起?

1 个答案:

答案 0 :(得分:0)

鉴于您没有说明是在使用还是计划使用ngrx或angular-redux,我将假设是较为流行的ngrx。

使用ngrx,您可以加载减速器和初始化效果。默认情况下,/ src / app / reducers / index.ts将使用以下方式定义减速器:

export interface AppState {
  router: any,
  simpro: BimState,
  omnipresent: OmniState,
  user: UserState
}

export const reducers: ActionReducerMap<AppState> = {
  router: routerReducer,
  simpro: bimReducer,
  omnipresent: omniReducer,
  user: userReducer
}

始终可以访问此处定义的状态和缩减器。

但是,如果您有一部分状态仅与单个延迟加载的路由模块有关,则可以将状态和reducer添加到该特定模块。

以这种方式加载的状态和化径器仅在激活相关路由并加载模块后才生效/出现在Redux Devtools状态树中。因此,您必须确保在可能尚不存在的任何代码中都无法访问它们,例如在另一个延迟加载的模块中。

类似的逻辑适用于效果,可以将它们加载到根模块中或延迟加载的模块中。