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

本文介绍Angular2中两种不同的引导方式:基于JIT的动态引导和基于AOT的静态引导,并探讨了它们各自的优缺点。JIT编译在浏览器端实时进行,而AOT则在构建阶段完成编译,适用于移动设备和低带宽网络。
摘要由CSDN通过智能技术生成

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


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

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

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

引导使用方式:

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

platformBrowserDynamic().bootstrapModule(AppModule);

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

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

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

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

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

在main.ts使用AOT模式

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

platformBrowser().bootstrapModuleFactory(AppModuleNgFactory);

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

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

import { AppModuleNgFactory } from './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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值