首页 > 解决方案 > 我们应该在 expressjs 中使用 Jade 还是 React 作为视图引擎

问题描述

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

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

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

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

标签: node.jsreactjsexpresspug

解决方案


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

个人观点:举两个我个人使用的流行的:Pug(玉)和EJS。
EJS 毫不费力,保持了普通 html 文件的外观。


在那里,你有你的答案。但是

但是,实际上,如果您为其他人工作,或者以后可能是您自己的个人喜好,您将处理 API 设计,例如:REST 和 GraphQL

这意味着您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 前端?[关闭]


推荐阅读