当我们已经在MEAN Stack中学习了angular时,是否还需要在express中学习视图和模板引擎

Al *_*had 5 express angularjs mean-stack

我正在学习 MEAN 堆栈。我从学习 Angular(来自 angular.io)开始,现在我正在学习 node.js 和 express.js

我的问题是,如果MEAN Stack 中的前端有angular,那么为什么后端的 express.js 中有视图和模板引擎?它们是相互替代还是互补?这两者的作用和责任的界限是什么?

我期待有人帮助澄清我对均值堆栈中使用的这两种技术(表达视图和角度)的作用的概念。

Muh*_*ish 14

为了回答您的问题,让我解释一下什么是 angular,什么是 express 中的模板引擎?

什么是角?

Angular 是一个平台,可以轻松地使用 Web 构建应用程序。Angular 结合了声明式模板、依赖注入、端到端工具和集成的最佳实践来解决开发挑战。Angular 使开发人员能够构建在 Web、移动或桌面上运行的应用程序。

什么是模板引擎?

模板引擎使您能够在应用程序中使用静态模板文件。在运行时,模板引擎用实际值替换模板文件中的变量,并将模板转换为发送给客户端的 HTML 文件。这种方法可以更轻松地设计 HTML 页面。

一些与 Express 一起使用的流行模板引擎是 Pug、Mustache 和 EJS。Express 应用程序生成器使用 Jade 作为其默认值,但它也支持其他几个。

所以,

Angular 是一个带有模板组件的框架。您可以使用它来创建单页 Web 应用程序,这意味着 DOM 修改发生在客户端,应用程序仅与服务器交换数据。如果您关注的是模板,则它是纯 HTML。

模板引擎的渲染视图每次都由服务器发送到客户端,每当每次在服务器上呈现新页面时发出请求并将其发送到客户端,这对静态站点非常有用,但不适用于丰富的站点交互。

如果 MEAN Stack 中的前端有 angular,那么为什么后端的 express.js 中有视图和模板引擎?

这是因为并非每次都建议从 angular 生成视图,有时最好使用模板引擎生成视图并将渲染的页面发送到客户端,在客户端生成视图有其优缺点,而在服务器端生成视图有它自己的。

使用模板引擎生成视图(即在服务器端):

优点:

  1. 搜索引擎可以抓取网站以获得更好的 SEO。
  2. 初始页面加载速度更快。
  3. 非常适合静态网站。

缺点:

  1. 频繁的服务器请求。
  2. 整体页面渲染缓慢。
  3. 整页重新加载。
  4. 非丰富的站点交互。

使用角度引擎生成视图(即在客户端):

优点:

  1. 丰富的站点交互
  2. 初始加载后快速呈现网站。
  3. 非常适合 Web 应用程序。
  4. 精选的 JavaScript 库。

缺点:

  1. 如果未正确实施,则 SEO 低。
  2. 初始加载可能需要更多时间。
  3. 在大多数情况下,需要一个外部库。

因此,在了解了利弊之后,您自己可以更好地决定在特定情况下哪个更适合您。Mean Stack 为开发人员提供了选项。

就您关于这两种技术的作用的问题而言,Angular 只是更多的视图生成器,它具有路由、作为服务双向数据绑定等功能,而模板引擎旨在呈现 HTML,以便它可以发送给客户端。

我希望你会发现这个答案很有用。

参考:

  1. 什么是模板引擎?
  2. 什么是角?
  3. 优点缺点