Reactjs 我应该在redux store中存储高通量、结构化的传感器数据吗?

Reactjs 我应该在redux store中存储高通量、结构化的传感器数据吗?,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我最近开始使用React,到目前为止,我已经构建了两个应用程序,包括一个用于操纵和可视化传感器数据的实时应用程序。这些数据包含来自WebSocket的高吞吐量结构化JSON帧,频率为100Hz-200Hz 随着我的应用程序的复杂性快速增长,在通过官方文档和Dan Abramov的课程了解Redux之后,我发现使用Redux管理应用程序的可视状态、路由、服务器信息等非常有吸引力 在我的React non-Redux应用程序中,所有内容都保存在本地状态,但这在架构设计中有成本。现在,我想开始重构应用

我最近开始使用React,到目前为止,我已经构建了两个应用程序,包括一个用于操纵和可视化传感器数据的实时应用程序。这些数据包含来自WebSocket的高吞吐量结构化JSON帧,频率为100Hz-200Hz

随着我的应用程序的复杂性快速增长,在通过官方文档和Dan Abramov的课程了解Redux之后,我发现使用Redux管理应用程序的可视状态、路由、服务器信息等非常有吸引力

在我的React non-Redux应用程序中,所有内容都保存在本地状态,但这在架构设计中有成本。现在,我想开始重构应用程序以集成redux。在这一点上,由于我的知识有限,我被困在关于传感器流数据存储位置的架构决策上,以及对应用程序渲染和处理性能的影响

在redux文档中,有一些经验法则用于确定应将何种数据放入redux:

  • 应用程序的其他部分是否关心此数据?[是]
  • 您是否需要能够基于此创建进一步的派生数据 原始数据?[是]
  • 是否使用相同的数据驱动多个组件?[是]
  • 将这种状态恢复到给定状态对您有价值吗 时间点(即时间旅行调试)?[是]
  • 是否要缓存数据(即,如果数据处于状态,则使用状态) 已经存在,而不是重新请求它)?[也许]
有几个帖子在讨论这个问题,但没有任何明确的答案。我也无法对此发表评论(这里是noob):

我发现了许多需要学习的不同分支,包括中间件、RxJS等。我希望进一步推动开发,但由于所有这些都需要时间来掌握,我想向社区咨询一些方向


提前谢谢

我目前正在使用redux为widget提供数据,我想说的是,传入速率大约在80-90赫兹左右,而我在widget画布上仍能获得60 fps。正如Dan在他的帖子中所说,使用redux并没有天生的慢。然而,每秒更新您的UI 200次是完全不必要的,我至少会在redux中添加一些中间件(如果您不想有服务器的话),以将更新集中到每秒最多60次。Redux可能不会那么慢,但尝试每秒渲染200次肯定会很慢

然而,我要说的是,我最近不得不做出与您相同的决定,并且在redux中保存数据流使得在我的应用程序中访问它们变得更加简单


我发现使用web workers是将数据合并到单个更新中的一种好方法。如果你还没有,我会去看看。如果您决定朝这个方向走,可能会对性能有很大帮助,因为工作人员将直接处理websocket连接,并以更可控的方式向redux发送操作调度。

嗨,Dakota,很抱歉回复太晚,我已经离开开发一段时间了。将更新限制到最大刷新率和聚合帧非常有意义。