在Redux存储中保留用户界面状态的好处?

时间:2018-08-22 18:58:22

标签: typescript redux ngrx ngxs akita

NGRX official demo application在商店中保留布局状态。

Akita Article还在秋田县searchTerm中保持EntityStore<Book>等状态。

只是好奇是否将用户界面状态保留在商店中而不是仅保留在UI组件中还有其他好处?

2 个答案:

答案 0 :(得分:3)

根据Redux FAQ entry on how to split state between the store and components

  

对此没有“正确”的答案。一些用户喜欢将每个数据保留在Redux中,以始终保持其应用程序的完全可序列化和受控版本。其他人则喜欢在组件的内部状态中保持非关键或UI状态,例如“此下拉列表当前是否打开”。

     

使用本地组件状态很好 。作为开发人员,确定您的应用程序构成哪种状态以及每种状态应驻留的位置是您的工作。找到适合您的天平,然后选择它。

     

用于确定应将哪种数据放入Redux的一些通用经验法则:

     
      
  • 应用程序的其他部分是否关心此数据?
  •   
  • 您是否需要能够基于此原始数据创建其他派生数据?
  •   
  • 是否使用相同的数据来驱动多个组件?
  •   
  • 能够将状态恢复到给定的时间点(例如,时间旅行调试)对您有价值吗?
  •   
  • 您是否要缓存数据(即,使用已存在的状态而不是重新请求)?
  •   

答案 1 :(得分:2)

要考虑的一件事是,当您使用组件状态并且组件被卸载并再次重新安装时,它的状态通常会丢失。如果组件将其所有状态存储在redux中,则可以保留其状态。

当我将react-router与redux结合使用时,这通常是一个因素。我想离开某些页面并以相同状态返回它们。