欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談angular4生命周期鉤子

 更新時間:2017年09月05日 14:19:39   作者:北城以南  
本篇文章主要介紹了淺談angularr4生命周期鉤子,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

理解

Angular提供了生命周期鉤子,把這些關(guān)鍵生命時刻暴露出來,賦予我們在它們發(fā)生時采取行動的能力??梢詫^子函數(shù)理解為在合適的時候做合適的事情。

鉤子函數(shù)

ng4主要提供了8個鉤子函數(shù):

1、ngOnchanges

@input屬性(輸入屬性)發(fā)生變化時,會調(diào)用。非此屬性,不會調(diào)用。

當(dāng)輸入屬性為對象時,當(dāng)對象的屬性值發(fā)生變化時,不會調(diào)用,當(dāng)對象的引用變化時會觸發(fā)。

先于ngOnInit調(diào)用。

2、ngOnInit

只執(zhí)行一次,dom操作可放在其中。(最常用)

3、NgDocheck

每次發(fā)生變更檢測時會被調(diào)用

ngDoCheck() 是Angular中的變更檢測機制.它由 zone.js 來實現(xiàn)的.其行為是只要你的Angular中的某個組件發(fā)生異步事件.就會檢查整個組件樹,以保證組件屬性的變化或頁面的變化是同步的.所以 ngDoCheck() 的觸發(fā)相當(dāng)頻繁的.并且是我們無法預(yù)料到的.也許我們在頁面上的一個無意識操作,就會觸發(fā)幾個甚至幾十個的 ngDoCheck() 生命周期鉤子.

4、ngAfterContentInit

在組件內(nèi)容初始化之后調(diào)用

5、ngAfterContentChecked

內(nèi)容投影:父組件寫在子標(biāo)簽之間的內(nèi)容會被渲染到子模板的ng-content中去,類似vue的slot

組件及子組件每次檢查內(nèi)容時調(diào)用

當(dāng)父子組件都有該鉤子時,父組件先執(zhí)行。

6、ngAfterViewInt

組件相應(yīng)的視圖初始化之后調(diào)用

7、ngAfterViewChecked

組件及子組件每次檢查視圖時調(diào)用

當(dāng)父子組件都有該鉤子時,子組件先執(zhí)行。

ngAfterViewChecked與ngAfterViewInt中不允許修改綁定的屬性(@input屬性),否則拋出異常

8、ngOnDestory

銷毀,事件解綁。

3.執(zhí)行順序

父組件:

組件模板

<div class="panel-body">
 <input type="text" [(ngModel)]="name">
 {{name}}
  <son [name]="name"></son>
</div>

組件

@Component({
 selector: 'father',
 templateUrl: './father.component.html',
 styleUrls: ['./father.component.scss']
})
export class FatherComponent implements OnInit {
 public name:string;
 constructor() { }
 ngOnInit() {
 console.log("父組件ngOninit");
 }
 ngOnchanges(){
 console.log("父組件ngonchanges");
 }
 ngDoCheck (){
 console.log("父組件ngDocheck")
 }
 ngAfterContentInit(){
 console.log("父組件ngAfterContentInit")
 }
 ngAfterContentChecked(){
 console.log("父組件ngAfterContentChecked")
 }
 ngAfterViewInit(){
 console.log("父組件ngAfterViewInit")
 }
 ngAfterViewChecked(){
 console.log("父組件ngAfterViewChecked")
 }
}

子組件

@Component({
 selector: 'son',
 templateUrl: './son.component.html',
 styleUrls: ['./son.component.scss']
})
export class SonComponent implements OnInit {
 @Input() name:string;
 constructor() { }

 ngOnInit() {
 console.log("子組件ngOninit");
 }
 ngOnChanges (){
 console.log("子組件ngonchanges");
 }
 ngDoCheck (){
 console.log("子組件ngDocheck")
 }
 ngAfterContentInit(){
 console.log("子組件ngAfterContentInit")
 }
 ngAfterContentChecked(){
 console.log("子組件ngAfterContentChecked")
 }
 ngAfterViewInit(){
 console.log("子組件ngAfterViewInit")
 }
 ngAfterViewChecked(){
 console.log("子組件ngAfterViewChecked")
 }
 
}

看打印結(jié)果:

當(dāng)在父組件的input中輸入內(nèi)容時,會打印如下結(jié)果:

看到有人說只有當(dāng)使用內(nèi)容投影時才會調(diào)用ngAfterConentChecked,當(dāng)上面的里面的代碼很顯然是沒用ng-content的,不知道該怎么解釋這個ngAfterConentChecked。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • angularjs2 ng2 密碼隱藏顯示的實例代碼

    angularjs2 ng2 密碼隱藏顯示的實例代碼

    本篇文章主要介紹了angularjs2 ng2 密碼隱藏顯示的實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 全面解析Angular中$Apply()及$Digest()的區(qū)別

    全面解析Angular中$Apply()及$Digest()的區(qū)別

    $apply()和$digest()在AngularJS中是兩個核心概念,但是有時候它們又讓人困惑。這篇文章主要介紹了Angular中$Apply()及$Digest()區(qū)別詳細說明的相關(guān)資料,需要的朋友可以參考下
    2016-08-08
  • AngularJS入門教程之AngularJS模型

    AngularJS入門教程之AngularJS模型

    這篇文章主要介紹了AngularJS入門教程之AngularJS模型的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • Angularjs制作簡單的路由功能demo

    Angularjs制作簡單的路由功能demo

    這篇文章主要介紹了Angularjs制作簡單的路由功能demo,剛剛開始學(xué)習(xí)Angularjs,做的不好,還請見諒。
    2015-04-04
  • Angular重構(gòu)數(shù)組字段的解決方法示例

    Angular重構(gòu)數(shù)組字段的解決方法示例

    這篇文章主要為大家介紹了Angular重構(gòu)數(shù)組字段的解決方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • 淺析如何利用angular結(jié)合translate為項目實現(xiàn)國際化

    淺析如何利用angular結(jié)合translate為項目實現(xiàn)國際化

    利用angular進行國際化轉(zhuǎn)換時利用【ng-bind-html】來進行語言的翻譯是接近幾乎比較完美的方案,不會像利用【{{}}】模式,當(dāng)頁面加載緩慢時導(dǎo)致頁面太丑。本文對其實現(xiàn)方法進行介紹,有需要的朋友可以看下
    2016-12-12
  • 詳解Angular Reactive Form 表單驗證

    詳解Angular Reactive Form 表單驗證

    本文我們將介紹 Reactive Form 表單驗證的相關(guān)知識,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • AngularJS實現(xiàn)Model緩存的方式

    AngularJS實現(xiàn)Model緩存的方式

    這篇文章主要介紹了AngularJS實現(xiàn)Model緩存的方式,分享了多種AngularJS實現(xiàn)Model緩存的方法,感興趣的小伙伴們可以參考一下
    2016-02-02
  • AngularJS中$http使用的簡單介紹

    AngularJS中$http使用的簡單介紹

    在AngularJS中主要使用$http服務(wù)與遠程http服務(wù)器交互,本篇文章主要介紹了AngularJS中$http使用的簡單介紹,非常具有實用價值,需要的朋友可以參考下。
    2017-03-03
  • 在 Angular6 中使用 HTTP 請求服務(wù)端數(shù)據(jù)的步驟詳解

    在 Angular6 中使用 HTTP 請求服務(wù)端數(shù)據(jù)的步驟詳解

    本文分步驟給大家介紹了在 Angular6 中使用 HTTP 請求服務(wù)端數(shù)據(jù)的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-08-08

最新評論