Angular 2 Redux initialState和initialState

时间:2017-03-13 23:08:30

标签: angular redux ngrx

我刚刚开始了解Redux架构(使用Angular 2)。

我是否理解一切进入一个对象,它定义了整个应用程序的状态?

如果是这样,说我想建立一个像管理员面板这样的中型应用程序,我还不知道所有的属性/状态。工作实践是在运行时更新initialState及其界面吗?

1 个答案:

答案 0 :(得分:1)

  

我是否理解一切进入一个对象,它定义了整个应用程序的状态?

这不完全正确。 - 技术上可行,但不建议。

数据通常聚合成具有语义依赖关系的较小块reducers - 如果你看ngrx-example-app - 你有以下reducers(你可以称之为“sub - 各国“):

  • 图书 - >包含与书籍相关的所有内容
  • 收藏品 - >包含书籍收藏相关的所有内容
  • 布局 - >与布局相关的一切(如果侧面板打开或关闭)
  • 搜索 - >一切与搜索相关的

现在,从技术上讲,每个reducer都放在全局商店对象中(以防你的意思是“ one Object”),但这只是为了方便起见, reducer必须在不了解其他reducers和状态的情况下构建为“独立组件”

总结:使用多个reducers,而不是一个大的。

  

[...]说我想构建一个类似管理面板的中型应用程序,但我还不知道所有的属性/状态。工作实践是在忙着更新initialState及其界面吗?

这取决于您的应用程序的内容,管理员面板的典型reducers可能是:

  • 用户 - >用户数据
  • 配置 - >一般配置相关数据
  • 支持 - >例如来自用户的支持请求
  • 布局 - >布局相关的事情

现在这只是一种定义缩减器的方法,有很多应用程序可能最好不要按业务逻辑划分缩减器,而是通过其他一些标准。 ngrx只是一个工具 - 你仍然需要思考!

关于更新interfaceinitialState,我不明白为什么这在任何情况下都应该是一个问题 - 只需添加新字段,实现reducer-cases即可完成(ofc在某个组件中实现显示等)。