node.js - 在expressjs中我们应该使用Jade还是React作为 View 引擎

标签 node.js reactjs express pug

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

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

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

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

最佳答案

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

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

<小时/>

到了这里,你就有答案了。 但是:

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

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

<小时/>

这意味着您必须选择一个流行的前端框架:React、Angular 或 Vue。
选择一个前端框架比将您的 View 留给某些模板引擎要好得多。不仅更具灵 active ,而且还使您在市场上更受欢迎。

由于您已经将 React 作为 MERN 堆栈来使用,并且您个人偏好将其全部放在服务器端,因此 Next.js 将是一个不错的选择。

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

Next.js is basically React on server side, that allows you to build your View with a strong framework, instead of a template engine, with so much flexibility and power over it.

<小时/>

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

Building a server-rendered React app with Next.js & Express.js

<小时/>

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

Server Side Templates vs REST API and Javascript Front-End

Is there any reason to use server side rendering instead of HTTP API + JS Frontend? [closed]

关于node.js - 在expressjs中我们应该使用Jade还是React作为 View 引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56735941/

相关文章:

node.js - Sails 在错误的目录中查找

javascript - es6 在 react 中对多个状态使用 ${}

javascript - Node JS - 构建 OAuth2 请求

node.js - Express.js是静态文件中间件使用的session和cookie?

javascript - 带有 promise 或异步回调的 Socket.io

node.js - 如何修复我的 Node.js 应用程序中的 Reflected XSS 漏洞

reactjs - 通过更改react-intl包装器 Prop 切换语言时,我的redux-form被重新初始化

javascript - React-Router RouteHandler 未定义

javascript - node.js/jQuery跨域: ERR_CONNECTION_REFUSED

node.js - Storm 路径 express : Save customData