Angular2 一些概念雜談

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:參數;

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章