我们正在将一个相当复杂的Web应用程序迁移到React / Redux架构中。
我无法找到答案的一个主要设计问题是,存储在redux中的数据应该如何“刷新”?
例如,假设我在类似items
的路线上加载/items
的列表。现在,用户想要查看特定项目并转到/items/<id>
。
据我了解,该流程应在/items
请求上工作,我们发出一个API请求,并将所有项目存储在redux存储中。当用户点击某个特定项目时,我们会从Redux存储中选择该特定项目,而无需再提出新的API请求,因为我们已经有了数据。
一切都很好。但是问题是,使数据“无效”的正确模式是什么?
说,用户加载了items
的列表,并从那里离开了几个小时。现在,items
的列表在理论上已经与服务器过时了。
然后如何使商店与服务器保持最新?
答案 0 :(得分:1)
您可以使用以下之一:
1)短期轮询(即不时轮询服务器并更新商店商品)
2)长时间轮询(打开连接,保持连接直到服务器上的数据更改,然后服务器向您发送新数据并关闭连接,然后重新打开连接...)
3)使用websocket的实时更新,可提供双向通信(这意味着服务器可以将数据推送到客户端)
答案 1 :(得分:0)
状态更改时是不是,react会自动重新渲染组件,这可能不是您想要的,但是“使数据无效”的正确模式意味着什么?像30分钟一样,它会派出一个动作查看状态更改吗?