Angular Universal 允许你预先渲染应用程序的页面。预先渲染是在构建时处理动态页面生成静态 HTML 的过程。
要预先渲染静态页面,要先向你的应用程序添加 SSR 功能。添加 SSR 后,运行以下命令:
npm run prerender
向应用程序添加预先渲染时,可以使用以下构建选项:
选项 |
详情 |
---|---|
browserTarget
|
指定要构建的目标。 |
serverTarget
|
指定用于预先渲染的应用程序的服务器目标。 |
routes
|
定义要预先渲染的额外路由数组。 |
guessRoutes
|
构建器是否应该提取路由并猜测要渲染的路径。默认为 |
routesFile
|
指定一个文件,其中包含要预先渲染的所有路由的列表,以换行符分隔。如果你有大量路由,则此选项很有用。 |
numProcesses
|
指定在运行预先渲染命令时要使用的 CPU 数量。 |
你还可以预先渲染动态路由。动态路由的一个例子是 product/:id
,其中 id
是动态提供的。
要预先渲染动态路由,请从以下选项中选择一个:
在运行 prerender 命令时,你可以提供额外的路由。比如:
ng run <app-name>:prerender --routes /product/1 /product/2
你可以使用文件提供路由以生成静态页面。如果你要生成的大量路由(比如电子商务应用程序的产品详细信息)可能来自外部源(数据库或 CMS),则此方法很有用。
要使用文件来提供路由,请使用 --routes-file
选项和包含路由的 .txt
文件的名称。
比如,你可以通过使用脚本从数据库中提取 ID 并将它们保存到 routes.txt
文件来生成此文件:
/products/1
/products/555
当你的 .txt
文件准备好后,运行以下命令以使用一些动态值来预先渲染静态文件:
ng run <app-name>:prerender --routes-file routes.txt
你还可以将特定路由传递给 prerender 命令。如果你选择此选项,请确保禁用 guessRoutes
选项。
ng run <app-name>:prerender --no-guess-routes --routes /product/1 /product/1
预先(AOT)编译器Angular应用主要由组件及其HTML模板组成。由于浏览器无法直接理解Angular所提供的组件和模板,因此Angular应用...
AngularJS 实例 本节为你提供了一些AngularJS实例,包括基础的 AngularJS 的使用、AngularJS 表达式的使用、AngularJS 指令的使...
AngularJS ng-bind-template 指令 AngularJS 参考手册AngularJS 实例 p 元素上绑定两个表达式:div ng-app="myApp" ng-bind-templ...
AngularJS ng-bind 指令 AngularJS 参考手册AngularJS 实例绑定 p 内的 innerHTML 到变量 myText:div ng-app="" ng-init="myText...
AngularJS ng-keypress 指令 AngularJS 参考手册AngularJS 实例按下按键时执行的代码:input ng-keypress="count = count + 1" ng...