我是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/