2016-02-28 38 views
4

我只是試圖找出構造函數和onInit函數之間的區別是什麼在Angular2的Directive中。對於我來說這兩個似乎都是在創建對象時使用的,那麼爲什麼你不僅要使用構造函數呢?Angular2指令,構造函數vs onInit

+0

看看這個http://stackoverflow.com/a/35763811/5043867 –

回答

3

第一個(構造函數)與類實例化有關,並且與Angular2無關。我的意思是一個構造函數可以用於任何類。您可以爲其新創建的實例進行一些初始化處理。

第二個對應於Angular2組件的生命週期鉤:

  • ngOnChanges當輸入或輸出結合值改變
  • ngOnInit在第一ngOnChanges

所以之後調用被稱爲如果初始化處理依賴於組件的綁定(例如用@Input定義的組件參數),則應該使用ngOnInit ),否則構造函數就足夠了...

+0

那麼有沒有理由不總是使用onInit? – theva

+0

例如,如果要使用注入的對象而不將它們設置爲類屬性... –

+0

注入是在構造函數級別完成的。但是使用ngOnInit進行其他初始化很好;-) –