Javascript 如何在收到web套接字上的更新后重新加载React组件?

Javascript 如何在收到web套接字上的更新后重新加载React组件?,javascript,reactjs,sockets,websocket,Javascript,Reactjs,Sockets,Websocket,我有一个React JS页面,其中有一个表。我的要求如下: 加载表(使用React表),调用数据API并填充表 在客户端启动web套接字连接并侦听任何更新 当数据库中添加了条目时,另一端的websocket服务器会发送一个更新(事件),因此我需要调用数据API来获取更新的信息 在通过web套接字接收到任何更新(基本上是事件)后,我需要再次重新加载表组件,以便对数据API进行API调用,该API将使用新数据填充表 我现在的执行情况如下: 加载表、调用API、填充表 打开websocket并侦

我有一个React JS页面,其中有一个表。我的要求如下:

  • 加载表(使用React表),调用数据API并填充表
  • 在客户端启动web套接字连接并侦听任何更新
  • 当数据库中添加了条目时,另一端的websocket服务器会发送一个更新(事件),因此我需要调用数据API来获取更新的信息
  • 在通过web套接字接收到任何更新(基本上是事件)后,我需要再次重新加载表组件,以便对数据API进行API调用,该API将使用新数据填充表
我现在的执行情况如下:

  • 加载表、调用API、填充表
  • 打开websocket并侦听任何更新
  • 在收到任何作为事件的更新后,我再次调用API并重新加载表

我只使用React,没有使用Redux或MobX进行状态管理。上述方法有效,但我想知道这是唯一的方法还是有更好的方法来实现上述方法

问问自己,有多少数据将发生变化,有多少用户将使用您的平台,可能是件好事。随着这些数字的增长,您的实现可能会发生变化,因为您不希望API因请求而过载

在过去的一个项目中,我将websockets与React/Redux一起使用,并遵循与您相同的路径,它表现良好,可能是您将获得的最好的

另一种可行的方法是将添加到表中的数据与websocket update函数一起发送,这样就不必再次调用数据库。我想说,对于消息传递平台来说,这是一个更好的解决方案,而不是您正在做的事情。但是,如果许多用户经常获得这些更新,这也是一种很好的方法,因为它可以更好地管理API上的负载


我可能会坚持您的实现,因为它是一个可行的实现,但请确保您将代码保留在一个可以在需要时轻松更改的状态。

您的方法是可行的。设置初始API调用的状态,并呈现状态作为道具传递的组件。如果接收到更新事件,则会发出另一个请求,从而更新状态,从而使用新数据重新呈现组件。Redux也可以帮助您。它将允许您将组件与所有网络相关的东西隔离开来,但如果您的应用程序很简单,则无需使用它。希望我能帮忙:)