在expressjs中我们应该使用Jade还是React作为视图引擎

gau*_*hor 3 node.js express reactjs pug

我是 Expressjs 的新手,开始使用 MERN Stack 构建一个项目。

我很困惑应该使用jade\pug、EJS、React 哪个视图引擎。

我已经使用 jade 将包含 mongodb 内容的页面渲染到浏览器中。我应该使用后端以 json 形式提供内容,而不是将整个页面呈现为 HTML。

我还尝试实现https://github.com/reactjs/express-react-views ,以便我可以使用 React 从服务器渲染页面。但是“express-messages”和“connect-flash”npm 包存在一些问题。

Mat*_*san 5

以我的愚见,这取决于您的喜好。实际上,您选择哪个模板/视图引擎并不重要,因为您只是在学习和练习。他们的学习曲线很陡峭
您甚至可以通过观看一些优质的 YouTube 视频来免费学习它们,您将获得全面的了解。
它们只是工具,仅此而已。

个人观点:举两个我个人常用的流行的:Pug(玉)和EJS。
EJS 没有任何大惊小怪,保持了正常 html 文件的外观。


在那里,你得到了答案。

然而,实际上,如果您为其他人工作或者以后可能是您自己的个人喜好,您将处理诸如REST 和 GraphQL之类的 API 设计。

这意味着你view与服务器端分离,服务器端是架构的一部分MVC,将其留给客户端来处理,这就是RESTful/GraphQl API服务器和客户端之间提供在线通信的地方。


因此,这意味着您必须选择一个流行的前端框架:React、Angular 或 Vue。选择一个前端框架比让你使用某个模板引擎
要好得多。view不仅更具灵活性,而且还使您在市场上更受欢迎。

由于您已经在处理 React,作为 MERN 堆栈,并且您个人偏好将其全部放在服务器端,因此Next.js将是一个很好的尝试选择。

即使在 MERN Stack 研究员的网站 ( https://mern.io/ ) 上也引用:
我们建议在您的 React 项目中使用 Next.js。

Next.js基本上是服务器端的 React,它允许您使用强大的框架而不是模板引擎来构建视图,并具有如此多的灵活性和强大的功能。


由于您使用express作为Node.js的框架,因此本文对于您将Next.js与express结合使用非常有用:

使用 Next.js 和 Express.js 构建服务器渲染的 React 应用程序


您可能会感兴趣的一些文章:

服务器端模板与 REST API 和 Javascript 前端

有什么理由使用服务器端渲染而不是 HTTP API + JS 前端?[关闭]