React与服务器端渲染堆栈

4
在过去的几年里,我一直在使用一种老式的堆栈,但对于我的用例非常有效。该堆栈是Node + Express.js + Angular.js 1.x。 基本上,后端通过dot.js或Handlebars(任何模板引擎)渲染视图,然后在前端中,Angular应用程序被挂载。
用例需要友好的SEO,因此内容必须在后端生成并直接提供服务。此外,UI具有其功能,表单等。它不仅仅是虚拟文本。
目前,针对相同用例的新项目,我想更新我的堆栈(使用SSR即服务器端呈现),其中应用程序不需要成为SPA(单个Web应用程序)。基础堆栈仍然相同(Node + Express.js),我想更新的唯一内容是前端库/框架。
我正在寻找一个具有大型社区和轻松共享组件和代码库的框架/库。这就是为什么我首先考虑React的原因。
我发现的第一件事是Next.js,当我阅读和调查时,它超出了我所需的范围。它是一个相当大的框架,有太多我不需要的东西,我不想给我的应用程序增加负担,我也无法按照自己的意愿进行自定义。
我继续研究,发现了一个名为 "express-react-views" 的 express 包,它是一个用于 express 的模板引擎,但不允许在客户端挂载 React 应用程序。浏览该包的 Github issues 后,我发现很多人都在询问这个问题,结果答案都是使用 Next.js。

我的疑虑 / 担忧如下:

  • React 是否是此用例的正确工具 / 库?
  • 如果不是,您有什么建议?
  • 如果是正确的工具,是否有任何在 React 和 Express 之上的 SSR 工具 / 包可以帮助我解决需要的自定义内容?

我不想再依赖于旧的或古老的工具,如 jQuery 或 Angular.js 1.x,因为维护和代码共享跨项目是复杂而烦人的。

1个回答

0

最简单的解决方案,而不深入研究Next.js,是使用本地React功能ReactDOMServer:

https://reactjs.org/docs/react-dom-server.html#reference

实际上使用起来非常简单,只需将HTML作为字符串提供服务,并在客户端挂载React应用程序,如果您想要使用React Router处理请求。


1
谢谢!我知道ReactDOMServer,但是需要很多手动定制的代码才能让它正常工作。 我想知道是否有一些轻量级的包或框架,可以作为Express.js的中间件或渲染函数补丁来使用,避免编写样板代码的开销。 - maxiruani
我明白了。至少在主场景中,我不知道有任何的(工具)。如果你找到了一个,请告诉我! - Mattia Rasulo
你有看过 Gatsby.js 吗? - Mattia Rasulo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接