加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Angular2引导方式:基于JIT的动态引导和基于AOT的静态引导

发布时间:2020-12-17 09:05:35 所属栏目:安全 来源:网络整理
导读:Angular2引导方式:基于JIT的动态引导和基于AOT的静态引导 在Angular2,我们会在main.ts里通过引导AppModule来启动应用。针对浏览器,可以选择基于JIT编译器的动态引导和基于AOT编译器的静态引导这两种方式。 基于JIT(Just in Time)编译器的动态引导 在这种

Angular2引导方式:基于JIT的动态引导和基于AOT的静态引导


在Angular2,我们会在main.ts里通过引导AppModule来启动应用。针对浏览器,可以选择基于JIT编译器的动态引导和基于AOT编译器的静态引导这两种方式。

基于JIT(Just in Time)编译器的动态引导

在这种方式下,angular会在浏览器端动态编译,然后启动app。

引导使用方式:

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } './app.module';

platformBrowserDynamic().bootstrapModule(AppModule);

基于AOT(Ahead of Time)编译器的静态引导

相对于动态引导,静态引导会预先在build阶段就生成一些工厂类,其中对应AppModule的工厂类为NgAppModuleFactory。

使用静态引导有几个优点:

  1. 因为是预先编译好,不需要向浏览器传输Angular的编译器,所以传输的内容更小。
  2. 和动态引导需要在浏览器端即时编译不同,静态引导从服务端下载完代码后可即时启动,启动比较快。

对于移动设备和一些低延时网络里,这两个有点显得很重要。

在main.ts使用AOT模式

import { platformBrowser } '@angular/platform-browser';
import { AppModuleNgFactory } './app.module.ngfactory';

platformBrowser().bootstrapModuleFactory(AppModuleNgFactory);

这里要注意:app.module.ngfactory文件不需要手动编码,它是编译期自动生成,对应生成AppModuleNgFactory。

JIT和AOT编译器都会生产AppModuleNgFactory,只是方式不一样。JIT在浏览器,缓存里实时生产AppModuleNgFactory 。AOT编译器会生产一个物理文件app.module.ngfactory。AOT模式引入这个文件,然后启动:

'./app.module.ngfactory';

生成app.module.ngfactory

@angular/compiler-cli提供了tsc和AOT两种编译器,把TypeScript转换为Javascript:

安装ngc

npm install @angular/compiler-cli typescript@next @angular/platform-server @angular/compiler

转换

$ ngc -p src

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读