繁体   English   中英

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

[英]Why put synchronous state in redux store?

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

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

我将引用有关Redux状态与组件状态的Redux FAQ条目中的 “何时将数据放入Redux的经验法则”:

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

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

想要在Redux中保持UI状态是完全正确的。 实际上, 我写了整篇博客文章,展示了如何在Redux中存储UI状态(如模式和Toast)

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

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

在此处输入图片说明 (资料来源:https://www.foreach.be

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM