需要有关 redux 和服务器端更新的建议

Need advice on redux and server-side updates

我正在构建一个从外部源接收更新的应用程序。 (假设更新是股票报价,每隔 10-60 秒偶尔出现一次。)

每个客户端页面可能会显示感兴趣股票的完整列表,或者只关注单个股票。任何页面上的组件都应随着服务器接收到该页面上显示的股票的新数据而更新。

我的问题:

  1. reactreactreact-redux 模块处理服务器端更新与浏览器中的客户端组件之间的通信-盒子? (显然我将不得不编写 actions/reducers/etc。)或者我是否还需要编写将这些更新从服务器传送到客户端的代码?

  2. 我设想启动从主 server.js 代码接收股票更新的服务器端进程,该代码也会触发 listen(3000) 调用。库存更新过程如何访问 redux 存储? (我之所以感到困惑,是因为在我读过的大多数 Express 示例中,createStore() 调用都在 app.use('/', ...) 内,因此每次收到新的 Web 请求时都会生成商店。)

  3. 是否有与我想做的项目类似的项目?谢谢。

  1. 您将必须编写将更新从服务器传送到客户端的代码。最好的方法是使用 websockets。您可以使用 http://socket.io/ 等框架
  2. 您遇到的在服务器端使用 createStore 的 Express 示例用于服务器端呈现。不推荐在此处访问商店以推送库存更新。

简而言之,您需要做的是,

  1. 设置socket io或websocket服务器
  2. 在客户端,设置一个socket-io客户端。它等待来自服务器的消息。
  3. 每当您获得股票更新时,通过套接字 io 将数据从服务器发送到客户端。
  4. 当客户端收到消息时,用数据发送一个动作,让 redux 流处理 state/store。

nope neither react no redux 处理服务器端和 React 组件(客户端)之间的通信

  • react 作为 ui 视图
  • redux 管理应用程序状态

服务器和客户端之间的通信属于动作和动作创建者,在这种情况下,您可以对服务器进行 ajax 调用(通过轮询),状态可以是布尔值获取、获取、失败所有这些需要和response对象一起在store中管理


关于服务器端库存更新过程的问题,这无关紧要,因为只有实现者才知道初始状态是什么,因此要问的问题是调用 createstore() 对您来说重要吗?应用程序的初始状态是什么。 在您的情况下,可以配置 createStore,在这种情况下,它是一个减速器,可以在某个时间点从主 server.js

获取库存

您可能还想查看 relay and graphql 默认情况下,它带有用于与服务器通信的网络层,所有这些都试图管理应用程序状态

[回答我自己的问题] 上面各个贡献者的回答是正确的并且非常有用,但我一直在(重新)学习如何使用 React 和 Redux 构建应用程序。我想分享我的新知识: