如何使React组件与后端保持同步?

时间:2019-02-14 15:30:20

标签: javascript reactjs redux react-redux redux-thunk

我正在开发一个使用Redux进行状态管理的小型React应用程序。

下表显示了动态对象列表,这些对象是从REST后端检索的,该后端在Java中使用Spring实现。当前,我必须单击一个按钮才能添加最新的数据增量(到Redux存储)。

Dynamic table with load button

该表应以高性能的方式自动更新。我发现了一个骇人的解决方法,该方法递归地使用Window's setTimeout方法定期从后端获取数据,但是我不喜欢该解决方案。


我可以使用哪些框架,工具或方法来与React,Redux,React Redux和Redux Thunk很好地集成?

4 个答案:

答案 0 :(得分:1)

由于您已经在使用redux和react-redux,因此如果分派了一个动作并且商店的状态已更新,则应使用新数据重新呈现组件。
调用setTimeout定期获取数据时,您正在使用一种称为轮询的技术。
为了避免进行轮询,无论您支持WebSocket还是GraphQL的订阅,还是使用某种实时数据源(例如Firebase),都取决于后端。

答案 1 :(得分:0)

为此,使用window.setIntervalwindow.setTimeout更好。除了需要定期从客户端获取数据之外,您可以查看socket.io之类的websockets库,尽管这需要在服务器端进行配置。

答案 2 :(得分:0)

如果您正在谈论以反应方式自动更新数据-当数据库中的某些内容更新时-为此您需要某种套接字服务器。您可以从后端触发事件,然后在前端订阅该事件,然后执行查询以获取数据。对于这种类型的东西(在大多数情况下),我不认为使用setInterval是个好主意。

签出Pusher

答案 3 :(得分:0)

与PouchDB一起使用的CouchDB(或Couchbase(不是相同))可能会有所帮助吗?我会在几天内尝试一下。

似乎他们有Spring数据库