Reactjs 我应该在redux store中存储高通量、结构化的传感器数据吗?
我最近开始使用React,到目前为止,我已经构建了两个应用程序,包括一个用于操纵和可视化传感器数据的实时应用程序。这些数据包含来自WebSocket的高吞吐量结构化JSON帧,频率为100Hz-200Hz 随着我的应用程序的复杂性快速增长,在通过官方文档和Dan Abramov的课程了解Redux之后,我发现使用Redux管理应用程序的可视状态、路由、服务器信息等非常有吸引力 在我的React non-Redux应用程序中,所有内容都保存在本地状态,但这在架构设计中有成本。现在,我想开始重构应用程序以集成redux。在这一点上,由于我的知识有限,我被困在关于传感器流数据存储位置的架构决策上,以及对应用程序渲染和处理性能的影响 在redux文档中,有一些经验法则用于确定应将何种数据放入redux:Reactjs 我应该在redux store中存储高通量、结构化的传感器数据吗?,reactjs,redux,react-redux,Reactjs,Redux,React Redux,我最近开始使用React,到目前为止,我已经构建了两个应用程序,包括一个用于操纵和可视化传感器数据的实时应用程序。这些数据包含来自WebSocket的高吞吐量结构化JSON帧,频率为100Hz-200Hz 随着我的应用程序的复杂性快速增长,在通过官方文档和Dan Abramov的课程了解Redux之后,我发现使用Redux管理应用程序的可视状态、路由、服务器信息等非常有吸引力 在我的React non-Redux应用程序中,所有内容都保存在本地状态,但这在架构设计中有成本。现在,我想开始重构应用
- 应用程序的其他部分是否关心此数据?[是]
- 您是否需要能够基于此创建进一步的派生数据 原始数据?[是]
- 是否使用相同的数据驱动多个组件?[是]
- 将这种状态恢复到给定状态对您有价值吗 时间点(即时间旅行调试)?[是]
- 是否要缓存数据(即,如果数据处于状态,则使用状态) 已经存在,而不是重新请求它)?[也许]
提前谢谢 我目前正在使用redux为widget提供数据,我想说的是,传入速率大约在80-90赫兹左右,而我在widget画布上仍能获得60 fps。正如Dan在他的帖子中所说,使用redux并没有天生的慢。然而,每秒更新您的UI 200次是完全不必要的,我至少会在redux中添加一些中间件(如果您不想有服务器的话),以将更新集中到每秒最多60次。Redux可能不会那么慢,但尝试每秒渲染200次肯定会很慢 然而,我要说的是,我最近不得不做出与您相同的决定,并且在redux中保存数据流使得在我的应用程序中访问它们变得更加简单
我发现使用web workers是将数据合并到单个更新中的一种好方法。如果你还没有,我会去看看。如果您决定朝这个方向走,可能会对性能有很大帮助,因为工作人员将直接处理websocket连接,并以更可控的方式向redux发送操作调度。嗨,Dakota,很抱歉回复太晚,我已经离开开发一段时间了。将更新限制到最大刷新率和聚合帧非常有意义。