Ahead-of-Time Compilation (或AoT)是Angular2中提供的一项功能。但我在官方网站上找不到关于它的好解释。
有人可以明确定义吗?
答案 0 :(得分:8)
我们使用angular2特殊语法(如bind
或管道或数据绑定内容)的模板需要编译为vm友好代码,浏览器可以读取该代码。
对于及时编译(常规行为),框架需要发布角度编译器,并在应用程序启动时在浏览器上编译模板。这意味着必须发送更高的包大小角度,以及更长的加载时间,因为浏览器必须先编译模板才能呈现它。
这类似于我们在浏览器中编辑打字稿的方式。因为这是一个昂贵的过程,我们通常在捆绑或构建过程时将typescript脱机。
离线渲染模板几乎没有什么好处,比如
答案 1 :(得分:1)
Angular2文档: https://angular.io/docs/ts/latest/guide/deployment.html#!#aot
Angular Ahead-of-Time编译器在构建过程中预编译应用程序组件及其模板。
由于多种原因,使用AOT编译的应用程序启动速度更快。Application components execute immediately, without client-side compilation. Templates are embedded as code within their components so there is no client-side request for template files. You don't download the Angular compiler, which is pretty big on its own. The compiler discards unused Angular directives that a tree-shaking tool can then exclude.