用Java [没有Node.js]的React.js服务器端渲染

时间:2016-05-13 06:55:33

标签: java node.js tomcat reactjs

我们在纯JSP / JQuery中有一个应用程序,我们正试图转向ReactJs以实现可维护性。我看到的ReactJs的一个好处是服务器端渲染。但是,我所看到的服务器端渲染的所有示例都将Node.js用作服务器端。我们目前正在使用Tomcat,而不是仅仅为了服务器端渲染而部署node.js。

我考虑过很少的替代方案,例如使用Nashorn(http://winterbe.com/posts/2014/04/05/java8-nashorn-tutorial/

但是,Nashorn似乎没有准备好生产。

是否有人在生产时在Tomcat上部署了带有服务器端渲染的React.js?

2 个答案:

答案 0 :(得分:13)

尝试在没有NodeJS的情况下呈现Javascript app服务器端是一种折磨自己的好方法。试图在jvm中运行javascript甚至更糟。我会建议反对它。

可以使用PhantomJS(技术上没有Node运行)甚至在* nix上使用xvfb和Chrome来渲染完整的客户端服务器端。一切都已经完成,不同程度的痛苦调试。

在内部运行javascript tomcat本身是相当不寻常的...除了“因为我们可以”之外,我看不到其他的观点。我最好的猜测是没有人在生产中这样做。

答案 1 :(得分:0)

为什么不在服务器端渲染上更进一步,用纯 Java 语言在没有 Node.js 的情况下以反应式风格制作实时单页 Web 应用程序?

Reactive Server Pages 项目使用类似于 Elixir Phoenix Live View 或 Scala Korolev 框架的方法。

动机:

  • 采用熟悉的 Java 编写的响应式 Web UI,没有客户端-服务器 API,没有 JS 需要框架和 npm 依赖项管理;
  • 轻量级 SSR 生成几乎纯 HTML 页面,对 SEO 友好;
  • UI 组件是常规的 Java 类;
  • 将应用程序渲染工作负载和 UI 逻辑从客户端的浏览器带到 服务器,您的代码始终保留在您的服务器上;
  • 像任何普通的 Java 代码一样调试 UI 代码;
  • 采用 Java Web 标准构建,目前在 Jetty 上运行,但在 理论上,也应该适用于 Tomcat。