Angular ngrx/strore示例应用程序,为什么子状态扩展根状态?

Angular ngrx/strore示例应用程序,为什么子状态扩展根状态?,angular,ngrx-store,Angular,Ngrx Store,我正在玩ngrx商店的示例应用程序,在“app\auth\reducers\index.ts”文件中找不出一段代码 在同一个文件中,我们已经有了描述状态的接口 export interface AuthState { status: fromAuth.State; loginPage: fromLoginPage.State; } 那么为什么我们应该创建另一个状态,更重要的是,为什么这个新状态应该扩展根状态 这是根状态 export interface State { layout

我正在玩ngrx商店的示例应用程序,在“app\auth\reducers\index.ts”文件中找不出一段代码

在同一个文件中,我们已经有了描述状态的接口

export interface AuthState {
  status: fromAuth.State;
  loginPage: fromLoginPage.State;
}
那么为什么我们应该创建另一个状态,更重要的是,为什么这个新状态应该扩展根状态

这是根状态

export interface State {
  layout: fromLayout.State;
  routerReducer: fromRouter.RouterReducerState<RouterStateUrl>;
}

然后,当一个子状态扩展根状态时,它只是向子状态添加更多与之无关的信息?因此,在本例中,
authState
bookstate
包含与
rootState
包含的信息相同的信息,以及它自己的信息?

遵循
app\reducers\index.ts
中的注释:

如前所述,我们将每个reducer视为数据库中的一个表。这意味着我们的顶级状态接口只是一个键到内部状态类型的映射

在本例中,
interface AuthState
描述功能模块的状态

接口状态从根扩展而来。状态提供有关可从此功能模块访问的完整状态(功能模块状态+顶部状态)的信息。在相同名称下,应根据功能模块保留不同的信息。这是一个很好的做法

export interface State {
  layout: fromLayout.State;
  routerReducer: fromRouter.RouterReducerState<RouterStateUrl>;
}
{
  root: rootState,
  auth: authState,
  books: booksState
}