1.constructor 和 ngOnInit 的区别:
(1)constructor 是 ES6 中类(class)的自身属性,和 Angular 无关,在页面初始化时就被调用;
(2)ngOnInit 是属于 Angular 生命周期的一部分,在第一轮生命周期 ngOnChanges 完成之后调用,并且只调用一次,初始化指令/组件;
(3)在 Angular 中,constructor 的主要作用是注入依赖,其注入的依赖,就可以作为类的属性被使用,例:
import { Location } from '@angular/common';
constructor(
private location : Location, //注入依赖
){}
ngOnInit(){}
(4)在 Angular 中,使用 ngOnInit 可以做一些初始化操作,例:
private name : string;
constructor(){}
ngOnInit(){
this.name = 'jack'
}
2.NgModule的主要属性:
(1)declarations:模块内部Components/Directives/Pipes的列表,声明一下这个模块内部成员
(2)imports:导入其他module,其它module暴露的出的Components、Directives、Pipes等可以在本module的组件中被使用。比如导入CommonModule后就可以使用NgIf、NgFor等指令。
(3)providers:指定应用程序的根级别需要使用的service。(Angular2中没有模块级别的service,所有在NgModule中声明的Provider都是注册在根级别的Dependency Injector中)
(4)bootstrap:通常是app启动的根组件,一般只有一个component。bootstrap中的组件会自动被放入到entryComponents中。
(5)exports:用来控制将哪些内部成员暴露给外部使用。导入一个module并不意味着会自动导入这个module内部导入的module所暴露出的公共成员。除非导入的这个module把它内部导入的module写到exports中。
3.获取路由参数:
(1)ActivatedRoute:主要用于保存路由,获取 Url 路由传递的参数;
(2)params:参数;