什么是 Angular 应用的 rerender 机制

简介: 什么是 Angular 应用的 rerender 机制

我们在某些 Angular 应用的 angular.json 文件里,能看到下面的代码:

prerender": {
          "builder": "@nguniversal/builders:prerender",
          "options": {
            "routes": ["/"]
          }
}


首先,让我们来理解上述代码的作用。这是一个在 angular.json 文件中定义的 prerender 配置,该配置是用于预渲染的设置。预渲染(Prerendering)是一种在服务端生成静态 HTML 页面的策略,这样在客户端首次加载时,可以立即显示出内容,而不需要等待 JavaScript 执行完毕。这可以提高页面的首屏加载速度,同时也有助于改善 SEO,因为搜索引擎可以直接解析静态 HTML 页面内容,而不需要执行 JavaScript。


这段配置中有三个重要的部分:

  • "builder":指定了预渲染的构建器,这里使用的是 Angular Universal 提供的预渲染构建器 @nguniversal/builders:prerender。这个构建器的任务就是按照配置,生成静态 HTML 文件。
  • "options":这是预渲染的选项,提供了预渲染构建器需要的一些参数。
  • "routes":这是一个数组,指定了需要预渲染的路由列表。在这个例子中,只有一个元素:/,意味着只有根路径 / 需要被预渲染。


现在,让我们通过一个详细的例子来解释这段代码的作用。假设我们有一个 Angular 项目,它的根路径 / 对应的是首页,首页中有一些从服务器动态获取的内容,例如新闻列表。如果我们不使用预渲染,那么当用户访问首页时,浏览器首先需要下载和执行所有的 JavaScript 代码,然后 JavaScript 代码会向服务器发送请求获取新闻列表,然后再将新闻列表渲染到页面上。在这个过程中,用户需要等待一段时间才能看到新闻列表,这会影响用户体验,同时,搜索引擎也可能因为无法执行 JavaScript 而无法获取到新闻列表的内容。


为了解决这个问题,我们可以使用预渲染。通过预渲染,我们可以在服务器端先生成一个包含了新闻列表的静态 HTML 文件,然后当用户访问首页时,服务器直接返回这个静态 HTML 文件。这样,用户可以立即看到新闻列表,不需要等待 JavaScript 执行完毕。同时,搜索引擎也可以直接解析这个静态 HTML 文件,获取到新闻列表的内容。


在这个例子中,我们可以在 angular.json 文件中添加以下配置:

`prerender`: {
  `builder`: `@nguniversal/builders:prerender`,
  `options`: {
    `routes`: [`/`]
  }
}

这样,当我们运行预渲染命令时,Angular Universal 的预渲染构建器会根据这个配置,生成一个包含了新闻列表的静态 HTML 文件。这个静态 HTML 文件会被保存在服务器上,当用户访问首页时,服务器就可以直接返回该静态页面。


相关文章
|
2月前
|
设计模式 JavaScript 前端开发
什么是 Angular 应用里的 Custom provider
什么是 Angular 应用里的 Custom provider
30 2
|
3月前
Angular 应用里异步打开对话框的技术实现
Angular 应用里异步打开对话框的技术实现
22 0
|
20天前
|
存储 JavaScript 前端开发
Angular 应用 node_modules 子文件夹 @types 的作用介绍
Angular 应用 node_modules 子文件夹 @types 的作用介绍
12 1
|
1月前
|
开发框架 前端开发 安全
Angular:构建现代Web应用的终极选择
Angular:构建现代Web应用的终极选择
23 0
|
2月前
|
Go
Mac安装Angular并部署运行应用
Mac安装Angular并部署运行应用
|
3月前
|
缓存 前端开发 JavaScript
Angular Service Worker 在 PWA 应用 HTTP 交互中扮演的角色
Angular Service Worker 在 PWA 应用 HTTP 交互中扮演的角色
45 0
|
3月前
|
缓存 JavaScript 前端开发
Angular PWA 应用什么情况下会出现 504 error
Angular PWA 应用什么情况下会出现 504 error
51 0
|
3月前
|
网络协议 JavaScript
Angular 服务器端渲染应用里重用 TCP 连接的示例代码
Angular 服务器端渲染应用里重用 TCP 连接的示例代码
22 0
|
3月前
|
缓存 JavaScript 中间件
如何在 Angular 应用中发起 HTTP 302 redirect
如何在 Angular 应用中发起 HTTP 302 redirect
29 0
|
3月前
|
Web App开发 前端开发 API
Skeleton Design 理念在 Angular 应用开发中的具体应用一例
Skeleton Design 理念在 Angular 应用开发中的具体应用一例
29 1

热门文章

最新文章