这是我的数据流:
1:500多个物体以1-2s的突发通过插座
2:对象直接添加到redux商店
3:React表容器连接到redux存储(使用它作为数据源)并为每个对象重新渲染。
许多重新渲染几乎会杀死浏览器。
我有什么选项可以缓冲传入的对象(事件)并将批次发送到reducer,比如1s?更好的解决方案是以某种方式限制反应渲染(shouldComponentUpdate ......),但我怀疑它是否可能?
答案 0 :(得分:2)
我建议专门研究RxJS和redux-observable。如果我没有弄错的话,你正在寻找的是debounce
operator。
RxJS的学习曲线非常陡峭,但我已经设法很快建立了一个基本的工作解决方案。
我受this talk的启发,我鼓励你去听。
答案 1 :(得分:0)
您可以在reducer中使用临时缓存作为本地数据。在将数据添加到商店对象之前可能会超时。
答案 2 :(得分:0)
您可以使用shouldComponentUpdate中的setTimeout实现自己的限制行为,或者使用像https://github.com/ryo33/react-throttle-render这样的内容