Angular应用的启动流程
Posted 聆耳吟风
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Angular应用的启动流程相关的知识,希望对你有一定的参考价值。
index.html
<app-root></app-root>
SPA 应用都有一个 index.html, 它即是唯一的
html
文件, 称为单页
, 也是视图输出的页面载体。
<app-root></app-root>
是根组件, Angular 应用只有唯一的一个根组件。
index.html
可以在angular.json
中architect/build//options/index
配置。
main.ts
platformBrowserDynamic().bootstrapModule(AppModule);
// AppModule
@NgModule({
declarations: [AppComponent],
imports: [BrowserModule, AppRoutingModule],
providers: [],
bootstrap: [AppComponent],
})
export class AppModule {}
bootstrapModule(AppModule)
将AppModule
设定为根模块。
在
AppModule
中的@NgModule bootstrap
中设定AppComponent
为根组件,index.html 中的 app-root
即AppComponent
。
main.ts
可以在angular.json
中architect/build//options/main
配置。
app.component.ts / app.component.html
// ts
@Component({
selector: \'app-root\',
templateUrl: \'./app.component.html\',
styleUrls: [\'./app.component.scss\'],
})
export class AppComponent {}
<!-- html -->
<router-outlet></router-outlet>
app-root
即index.html
中的app-root
之前已经将
AppModule
和AppComponent
注册为根模块
根组件
, 在AppComponent
对应的视图中, 有一个根路由出口
, 通过单页路由渲染的组件视图都将在这里输出。
app-routing.module.ts
const routes: Routes = [];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule {}
在根路由模块中注册路由就可以通过
URL
访问对应的视图页面。
ng serve
ng serve
配置在angular.json
中的architect/serve
。
ng serve
在执行时会编译应用程序。
polyfills.ts
import \'zone.js/dist/zone\';
plyfills
是腻子脚本
, 这个文件一般处理的事情是兼容不同浏览器版本, 例如为了兼容IE
一些不能使用的特性而引入一些补丁
脚本, 或者你想执行一些额外的代码
, 它会在程序启动之前执行。
腻子脚本
中引入了zone.js
, 它是 Angular 用于拦截和跟踪异步工作的机制, 例如setTimeout
是一个异步的定时任务, 但是你并不知道它会何时完成,
zone.js
对setTimeout
进行了一个包装, 创建了一个Task
,setTimeout
运行在这个Task
中。
更多关于
zone.js
的信息可以自行查阅, 或通过https://zhuanlan.zhihu.com/p/87328050
这里大概了解一些。
以上是关于Angular应用的启动流程的主要内容,如果未能解决你的问题,请参考以下文章
json 可视代码工作室Angular with Firebase片段
Android - 应用程序启动时片段 onCreate 崩溃
typescript Angular最终版本的Angular 2测试片段。代码库https://developers.livechatinc.com/blog/category/programming
typescript Angular最终版本的Angular 2测试片段。代码库https://developers.livechatinc.com/blog/category/programming
typescript Angular最终版本的Angular 2测试片段。代码库https://developers.livechatinc.com/blog/category/programming