【问题标题】:How to re-render all my react clients every time that changes are made in my database?每次在我的数据库中进行更改时,如何重新渲染我的所有反应客户端?
【发布时间】:2021-09-08 09:22:22
【问题描述】:

我在 nodejs 上使用 create-react-app 和服务器创建了一个客户端应用程序,并使用 MySQL 作为数据库。在所有反应客户端上呈现我的数据库中的更改的最佳方式是什么?

【问题讨论】:

  • 对于实时,您可能需要考虑使用 websocket 客户端挂钩数据库中的更改并将其连接到客户端。
  • React 如何知道数据库是否已更新?您是从同一个 react 应用程序还是从任何 3rd 方应用程序将内容发布到您的数据库?

标签: reactjs create-react-app render


【解决方案1】:

您要问的更多是与如何获取数据有关,而不是与 react 应用程序本身有关。

有多种选择:

  • 实时数据库:你有像 firebase 这样的数据库来帮助你处理这个问题。 (不适用于您,因为您的 NodeJS 应用程序带有 MySQL)
  • Sockets:这是服务器在数据发生变化时通知所有客户端的方式。最简单的实现是使用 socket.io(定义:https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API - 工具:https://socket.io/
  • 轮询:这是性能最差的一种,但它是最简单的实施方式。基本上可以设置一个setInterval(超过setTimeout,每X次获取信息)

您可以阅读更多关于比较的信息:https://codeburst.io/polling-vs-sse-vs-websocket-how-to-choose-the-right-one-1859e4e13bd9

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-01
    • 2018-01-05
    相关资源
    最近更新 更多