为什么要在redux存储中放置同步状态?

时间:2018-09-22 15:13:19

标签: javascript reactjs redux single-page-application flux

将非异步状态放入redux存储有什么意义?例如,您有模式显示,不显示显示或不显示显示,您想要编写太多内容只是为了切换?仅将其作为本地状态放入react组件并使用setState进行更新有什么问题?

我决定应该通过redux进入哪个状态的经验法则是数据是异步的,否则存储中将有太多ui状态,并且一天之内会变得如此之大,您的想法是什么?

3 个答案:

答案 0 :(得分:5)

我将引用the Redux FAQ entry on Redux state vs component state中的“何时将数据放入Redux的经验法则”:

  

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

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

想要在Redux中保持UI状态是完全正确的。实际上,I wrote an entire blog post demonstrating ways to store UI state like modals and toasts in Redux

答案 1 :(得分:2)

在同一应用程序中全部使用本地组件状态和redux状态没有错。请注意,setState()仍然是异步的。

答案 2 :(得分:1)

某些组件希望有权访问相同的数据。这些数据可以同步获取或异步获取,这并不重要。下图将对此更清晰的描述:

enter image description heresource: https://www.foreach.be

当彼此相对较远的组件(例如图片中组件的左右分支)时,它们可以使用商店进行常规访问。因此,redux存储不仅提供了一种处理异步数据的方法,而且对于方便地将数据获取到react应用程序中的每个组件也非常有用。无论组件位于何处,都可以使它访问商店。