NGRX官方演示应用程序在商店中保持布局状态。
这篇秋田文章还保留searchTerm
了秋田等的状态EntityStore<Book>
。
只是好奇将用户界面状态保留在商店中是否还有其他好处,而不仅仅是在 UI 组件中?
根据Redux FAQ entry on how to split state between store 和 components:
对此没有“正确”的答案。一些用户更喜欢将每一条数据都保存在 Redux 中,以始终维护其应用程序的完全可序列化和受控的版本。其他人更喜欢在组件的内部状态中保留非关键或 UI 状态,例如“此下拉列表当前是否打开”。
使用本地组件状态很好。作为开发人员,您的工作是确定构成您的应用程序的状态类型以及每个状态应该存在的位置。找到一个适合你的平衡点,并坚持下去。
确定应将哪种数据放入 Redux 的一些常见经验法则:
- 应用程序的其他部分是否关心这些数据?
- 您是否需要能够基于这些原始数据创建进一步的派生数据?
- 是否使用相同的数据来驱动多个组件?
- 能够将此状态恢复到给定的时间点(即时间旅行调试)对您有价值吗?
- 您是否要缓存数据(即,如果它已经存在,则使用状态中的内容而不是重新请求它)?
要考虑的一件事是,当您使用组件状态并且组件被卸载并再次重新安装时,它的状态通常会丢失。如果组件将其所有状态存储在 redux 中,则可以保留其状态。
当我将 react-router 与 redux 结合使用时,这通常是一个因素。我想从某些页面导航离开并以相同的状态返回它们。