成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長資訊網
最全最豐富的資訊網站

一文聊聊Angular中的生命周期

使用angular進行開發時,避免不了需要接觸生命周期,下面本篇文章就來帶大家一起聊聊Angular中的生命周期,希望對大家有所幫助!

一文聊聊Angular中的生命周期

接觸過 reactvue 開發的讀者應該對生命周期這個概念不陌生。我們在使用 angular 開發的過程中,是避免不了的。【相關教程推薦:《angular教程》】

組件從開始建立到銷毀的過程中,會經歷過一系列的階段。這就是一個生命周期,這些階段對應著應用提供的 lifecycle hooks

那么,在 angular 中,這些 hooks 都有哪些呢?了解它們,對你編寫程序應該在哪里編寫,很重要。

angular 中,生命周期執行的順序如下:

- constructor 【常用,不算鉤子函數,但是很重要】 - ngOnChanges【常用】 - ngOnInit【常用】 - ngDoCheck   - ngAfterContentInit   - ngAfterContentChecked   - ngAfterViewInit【常用】   - ngAfterViewChecked - ngOnDestroy【常用】

為了解說和驗證,我們用 angular-cli 生成一個 demo 項目。

constructor

es6 中的 class 初始化對象的時候,constructor 會立即被調用。

class Person {   constructor(name) {     console.log('be called')     this.name = name;   } }  let jimmy = new Person('jimmy'); // be called

angular 的組件本身就是導出一個類。當這個組件被 new 起來的時候,會獲取 constructor 中的預設的值。

ngOnChanges

當我們有外部參數更改的時候,我們就會執行 ngOnChanges,也就是說組件中有 @Input 所綁定的屬性值發生改變的時候調用。

簡單說,父組件綁定子組件中的元素,會觸發這個鉤子函數,可以多次出發。這在下面的 ngOnInit 總會介紹。

ngOnInit

這個方法調用的時候,說明組件已經初始化成功。在第一次 ngOnChanges() 完成之后調用,且只調用一次。

// app.component.ts export class AppComponent implements OnInit, OnChanges {    constructor() {     console.log('1. constructor')   }    ngOnChanges() {     console.log('2. ngOnChanges')   }    ngOnInit() {     console.log('3. ngOnInit')   } }

打印的信息如下:

一文聊聊Angular中的生命周期

咦?怎么沒有打印 ngOnChanges 中的鉤子函數信息呢?

上面已經說過了,需要觸發條件 @Input 的屬性值改變的時候。我們來修改一下:

<!-- app.component.html --> <div>   <app-demo></app-demo> </div>
// app.component.ts // AppComponent 類中添加屬性 public count:number = 0;
<!-- demo.component.html --> <h3>count: {{ count }}</h3>
// demo.component.ts export class DemoComponent implements OnInit, OnChanges {    @Input()   public count: number;    constructor() {     console.log('1. demo constructor')   }    ngOnChanges() {     console.log('2. demo ngOnChanges')   }    ngOnInit() {     console.log('3. demo ngOnInit')   }  }

一文聊聊Angular中的生命周期

當通過 @Input 將值傳遞給子組件 demo 的時候,就會觸發 demo 組件中的 ngOnChanges

@Input 傳遞的屬性發生改變的時候,可以多次觸發 demo 組件中的 ngOnChanges 鉤子函數。

<!-- app.component.html --> <div>   <app-demo [count]="count"></app-demo>    <button (click)="parentDemo()">parent button</button> </div>
// app.component.ts parentDemo() {   this.count++; }

一文聊聊Angular中的生命周期

ngDoCheck

當發生變化檢測的時候,觸發該鉤子函數。

這個鉤子函數,緊跟在每次執行變更檢測時候 ngOnChanges 和首次執行執行變更檢測時 ngOnInit 后面調用。

// demo.component.ts  ngDoCheck() {   console.log('4. demo ngDoCheck') }

一文聊聊Angular中的生命周期

這個鉤子函數調用得比較頻繁,使用成本比較高,謹慎使用。

一般使用 ngOnChanges 來檢測變動,而不是 ngDoCheck

ngAfterContentInit

當把外部的內容投影到內部組件,第一次調用 ngDoCheck 之后調用 ngAfterContentInit,而且只調用一次。

// demo.component.ts  ngAfterContentInit() {   console.log('5. demo ngAfterContentInit'); }

一文聊聊Angular中的生命周期

ngAfterContentChecked

ngAfterContentChecked 鉤子函數在每次 ngDoCheck 之后調用.

// demo.component.ts  ngAfterContentChecked() {   console.log('5. demo ngAfterContentChecked'); }

一文聊聊Angular中的生命周期

ngAfterViewInit

視圖初始化完成調用此鉤子函數。在第一次 ngAfterContentChecked 之后調用,只調用一次。

這個時候,獲取頁面的 DOM 節點比較合理

// demo.compoent.ts  ngAfterViewInit() {   console.log('7. demo ngAfterViewInit'); }

一文聊聊Angular中的生命周期

ngAfterViewChecked

視圖檢測完成調用。在 ngAfterViewinit 后調用,和在每次 ngAfterContentChecked 之后調用,也就是在每次 ngDoCheck 之后調用。

// demo.component.ts  ngAfterViewChecked() {   console.log('8. ngAfterViewChecked') }

一文聊聊Angular中的生命周期

ngOnDestroy

組件被銷毀時候進行的操作。

在這個鉤子函數中,我們可以取消訂閱,取消定時操作等等。

<!-- app.component.html --> <app-demo [count]="count" *ngIf="showDemoComponent"></app-demo>  <button (click)="hideDemo()">hide demo component</button>
// app.component.ts public showDemoComponent: boolean = true;  hideDemo() {   this.showDemoComponent = false }
// demo.component.ts ngOnDestroy() {   console.log('9. demo ngOnDestroy') }

一文聊聊Angular中的生命周期

PS: 不知道讀者有沒有發現,調用一次的鉤子函數都比較常用~

【完】

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
好男人网官网在线观看2019| 国产精品无码素人福利| 色噜噜亚洲男人的天堂| 国产精品亚洲成在人线| 中文JAPANESE在线播放 | 国产精品久久久久久久久鸭| 一个上面一个下面嘴巴| 挺进邻居丰满少妇的身体| 久久精品水蜜桃AV综合天堂| 国产爆乳无码一区二区麻豆| 中文字幕乱码亚洲无线码三区| 脱了老师内裤猛烈进入的软件| 久久GOGO国模啪啪人体| 2023极品少妇XXXO露脸| 欧美性猛烈XXXX极品少妇| 精品熟女AV少妇免费久久自慰| 动漫精品中文无码卡通动漫| 欲香欲色天天天综合和网| 婷婷久久香蕉五月综合加勒比| 美女扒开腿让男人桶爽| 国国产自偷自偷免费一区| 精品国产AⅤ一区二区三区V免费| 免费影视观看网站入口| 欧美一区二期三区视频| 女人为啥摸几下就让进了| 私人家庭影院5577| 亚州AV无码人妻一区二区三区| 小SAO货大JI巴CAO死你H| 亚洲国产精品成人无码区| 亚洲S久久久久一区二区| 四川少妇BBW搡BBBB槡BBBB| 美美哒免费高清影院| 国产色婷婷五月精品综合在线| 中文字幕AV无码一区二区蜜芽三 | 亚洲MV砖码砖区2021在线| 日韩精品无码一本二本三本| 老妇FREE性VIDEOSXX| 红桃视频成人传媒| 公交车大龟廷进我身体里| 宝贝腿开大点我添添公视频免费 | 亚洲熟妇一区二区三区| 无码无套少妇毛多18PX| 日本免费精品一区二区三区| 人人妻人人澡人人爽人人到DVD| 拧花蒂尿用力按凸起喷水尿AV| 人人爽人人模人人人爽人人爱| 亚洲AV永久无码老湿机男人网 | 97人洗澡人人澡人人爽人人模 | 久久久久久久99精品免费观看| 国产精品久久久久精品| 国产AV人人夜夜澡人人爽麻豆 | 久草日B视频一二三区| 久久不见久久见中文字幕免费| 久久久久成人片免费观看R| 狠狠色欧美亚洲狠狠色WWW| 国产精品偷伦视频免费观看了| 丰满少妇奶水一区二区三区 | CHINESE熟女老女人HD,| CHINESE 麻豆 HD X| 91麻豆精品无码一区二区三区| 97国产精华最好的产品 | 国产精品美女久久久网站动漫 | 久久精品国产99国产精品澳门| 激情伊人五月天久久综合| 娇妻在客厅被朋友玩得呻吟动漫| 久久精品噜噜噜成人AV| 蜜桃中文字日产乱幕| 人妻少妇无码中文幕久久| 蜜臀AV在线无码国产| 屁屁影院CCYY备用地址| 少妇性活BBBBBBBBB小说| 亚洲AV永久无码精品一区二区国| 亚洲欲色欲WWW怡红院| AV在线播放网站| 国产极品美女高潮无套APP| 国内最真实的XXXX人伦| 久久精品免费观看国产| 日韩精品无码熟人妻视频| 无人区码一码二码三码在线| 亚洲一区二区三区偷拍女厕| 99视频精品全部免费免费观看 | 777亚洲精品乱码久久久久久| 宝贝腿开大一点你真湿H| 火车上荫蒂添的好舒服视频| 免费人成网WW555KKK在线| 丝袜国偷自产中文字幕| 亚洲香蕉中文日韩V日本| XXXX日本少妇做受| 激情五月开心婷婷深爱| 秋霞国产成人精品午夜视频APP| 色一情一区二区三区四区| 亚洲综合精品伊人久久| 成人影院YY111111在线观| 久久人人爽人人爽人人片AV不 | 亚洲AV中文无码乱人伦在线R▽| 51FUN吃瓜网-热心群众| 精品国产肉丝袜久久| 人妻少妇看A偷人无码精品视频| 亚洲爆乳AⅤ无码一区二区| 儿子第一次送妈妈母亲节礼物| 久久99亚洲含羞草影院| 香草乱码一二三四区别| 八戒八戒神马2021| 精品久久久久久亚洲中文字幕| 日产乱码一二三区别免费必看| 亚洲精品国产自在久久| 凹凸国产熟女精品视频| 麻豆影视视频高清在线观看| 亚洲AV中文无码字幕色最| 国产50岁老熟女网站| 麻豆文化传媒WWW| 无码人妻精品一区二区三区99不卡| 无码人妻侵犯一区侵犯| AV无码不卡一区二区三区| 久久精品国产蜜桃AV麻豆| 性欧美18ⅩXOO极品FREE| 德国FREE性VIDEO极品| 麻豆蜜桃AV蜜臀AV色欲AV| 亚洲美女国产精品久久久久久久久| 国产精品三级一区二区| 欧美精品成人久久AV爱乃娜美| 亚洲婷婷综合色高清在线| 狠狠色综合久久丁香婷婷| 无码高潮喷吹在线播放亚洲| 国产精品久久久久精品综合| 日韩精品极品视频在线观看免费| 97电影九七电影理论片| 男男GAy作爱免费观看| 少妇极品熟妇人妻200片| 苍井空无码免费换线| 男人女人免费啪啪观看| 中文字幕久久波多野结衣AV | 婷婷5月女内射AV| BBW厕所白嫩BBWXXXX| 女生裙子里面到底穿了啥| 99国产精品久久久久久久成人热| 美丽的熟妇中文字幕| 18禁动漫无码无遮挡免费看| 老汉扛起娇妻玉腿进入| 91精品人妻一区二区三区| 免费播放片高清在线视频| 一本一本久久A久久精品综合| 久久久无码精品亚洲日韩精东传媒 | 一区二区三区国产精华液区别| 精品一区二区三区在线观看视频| 亚洲日本一区二区三区在线不卡| 精品国产18久久久久久| 亚洲国产AⅤ精品一区二区30P | 日韩精品无码一区二区三区| 高清拍拍拍无挡国产精品| 日日摸夜夜添夜夜添亚洲女人| MD豆传媒APP网址| 天天躁日日躁狠狠躁婷婷| 精品无人区麻豆乱码无限制| 小说 亚洲 无码 精品| 欧美亚洲国产一区二区三区| 人妻丰满熟妇岳av无码区HD| 成人午夜福利电影天堂| 色综合天天视频在线观看| 国产精华液一区二区区别大吗 | 人妻无码ΑV中文字幕久久琪琪布| 公交车被多男摁住灌浓精| 亚洲AV成人一区二区电影在线| 国产亚洲欧美日韩在线一区二区三 | 久久久久人妻一区精品 | 日本高清中文字幕在线观穿线视频 | 精品久久AⅤ人妻中文字幕| 2012手机免费观看版国语 | 从厨房一路干到卧室好吗| 亚洲国产成人无码网站大全| 久久久久久精品国产亚洲AV麻豆| JZZIJZZIJ亚洲乱熟无码| 色天使综合婷婷国产日韩AV| 精品人妻少妇嫩草av无码专区| 69国产成人精品午夜福中文| 天堂影院在线观看高清在线| 国语对白露脸XXXXXX| 99久久99久久久精品齐齐综合| 玩弄放荡人妻一区二区三区| 久久久久久精品免费免费自慰| 97色偷偷色噜噜狠狠爱网站97 | 性欧美丰满熟妇XXXX性久久久| 蜜臀AV一区二区三区四区| 丰满顿熟妇好大BBBBBΒ| 亚洲人成未满十八禁网站| 日本理论片YY4800免费| 精品国产一区二区三区噜噜噜 | 老牛天天晚上夜噜噜噜| 边做饭边被躁欧美三级| 亚洲AⅤ精品无码一区二区PRO| 蜜乳AV一区二区三区四区| 国产成人亚洲精品无码MP4| 伊人久久大香线焦AV综合影院 | 国产午夜福利在线观看红一片| BT天堂А√天堂资源地址| 亚洲国产AV无码一区二区三区 | 国语对白露脸XXXXXX| 成人免费无码大片A毛片抽搐色欲| 亚洲日韩国产AV无码无码精品| 特黄AAAAAAAAA毛片免费视频|