我应该关心 React Redux 应用程序中的状态变化率吗?

IT技术 reactjs websocket redux
2021-05-15 17:58:33

我正在使用 React、Redux 和 Websocket 实现/评估“实时”Web 应用程序。在服务器上,我的数据集以每秒大约 32 次更改的速度发生更改。

每次更改都会使用 Websocket 向应用程序发送异步消息。异步消息在我的 redux 状态下启动 RECEIVE 操作。状态更改会导致组件渲染。

我担心状态更改的频率会导致客户端上出现不可接受的负载,但我不确定如何根据消息数量、组件数量等来表征负载。

这什么时候会成为一个问题,或者我将使用什么工具来确定它是否是一个问题?

我的状态的“形状”对渲染性能有影响吗?我应该考虑将高变化对象放在一个实体中,而将低变化对象放在另一个实体中吗?

我是否应该将精力集中在批处理更改事件上,以便应用程序可以响应更改列表而不是每个单独的更改(有效降低状态更改率)?

我很感激任何建议。

1个回答

这些实际上是非常合理的问题,是的,这些听起来都是很好的方法。

作为一个想法 - 您说您的服务器端数据更改每秒发生 32 次。该信息本身可以批量处理吗?你真的需要显示每一个更新吗?

您可能对 Redux 常见问题的“性能”部分感兴趣,其中包括有关“扩展”减少商店订阅更新数量的答案

根据更新频率对状态进行部分分组听起来是个好主意。未订阅该块的组件应该能够根据 React Redux 的内置浅层相等性检查跳过更新。

对于与性能相关的信息和库,我将添加几个额外的有用链接。我的 React/Redux 链接存储库有一个关于React 性能的部分,我的 Redux 库链接存储库有一个关于存储更改订阅组件更新监控的相关部分