如何提供一个解耦的 React 前端?

dsz*_*opa 4 javascript java spring frontend reactjs

所以我正在使用 React & Spring (Java) 创建一个多平台应用程序

我想让 Spring 后端成为一个可以被 React-Native 和 React 前端调用的 REST web 服务。

我目前将我的项目分为 3 个子项目:后端(Spring)、webapp-frontend(React webapp)、mobile-frontend(React native)

我的问题是我应该如何实际为 React webapp 前端提供服务。我将在服务器上的某个地方拥有 web 服务,以便 React 代码可以调用它来进行 API 调用,但就为 React webapp 提供服务而言,最好使用相同的后端服务器为其提供服务,还是更好地进行一个单独的前端服务器,像 express 这样的东西?另外,还有其他选择吗?

Lim*_*men 6

使用 express 或与 REST 后端相同的服务器为 react webapp 提供服务都是有效的选项。我会说,如果没有特别的理由选择 express,那么在与 spring 后端相同的服务器上提供它是您的最佳选择。

回想一下,前端和后端仍然是解耦的,并且只通过 REST 接口进行通信,因此扩展后端服务器以托管 react-webapp 应该非常简单,这里有一个可能有用的示例:React,Spring,Rest 示例

但是,我看到有几个参数可以让您选择一个单独的服务器,然后选择 REST 后端,例如:

  • 隔离的重启和故障。如果您希望能够仅重启您的 react-frontend 而不会影响 REST 后端,您可能希望在不同的服务器上运行它们。另一件要考虑的事情是,如果您希望后端需要大量扩展并且您需要跨多个服务器复制后端,那么如果前端在其自己的单独服务器上运行,这可能更容易做到。

  • JavaScript (React) 的服务器端渲染可以通过像 express 这样的 node.js 服务器来实现,但我认为 Spring 服务器是不可能的。

另外,还有其他选择吗?

其他替代方案则 express/Spring, Yes。其他替代方案然后将前端托管在后端服务器或它自己的服务器上?

两种选择都有利有弊,最好的取决于您的需求。