天天看點

ionic4生命周期

Ionic4中内置的生命周期函數:

ionViewWillEnter —當進入一個頁面時觸發(如果它從堆棧傳回)

ionViewDidEnter —進入後觸發

ionViewWillLeave —如果頁面将離開觸發

ionViewDidLeave — 在頁面離開後觸發

ionViewWillUnload — 在Angular中沒有觸發,因為這裡你必須使用ngOnDestroy
           

Ionic4中使用Angular生命周期函數:

1、Ionic4中的生命周期函數ngOnChanges 當被綁定的輸入屬性的值發生變化時調用(父子元件傳值的時候會觸發

2、Ionic4中的生命周期函數ngOnInit 請求資料一般放在這個裡面 (重要*)

3、Ionic4中的生命周期函數ngDoCheck 檢測,并在發生 Angular 無法或不願意自己檢測的變化時作出反應

4、Ionic4中的生命周期函數 ngAfterContentInit 當把内容投影進元件之後調用

5、Ionic4中的生命周期函數 ngAfterContentChecked 每次完成被投影元件内容的變更檢測之後調用

6、Ionic4中的生命周期函數 ngAfterViewInit  初始化完元件視圖及其子視圖之後調用(dom操作放在這個裡面) (重要)

7、Ionic4中的生命周期函數 ngAfterViewInit  每次做完元件視圖和子視圖的變更檢測之後調用

8、Ionic4中的生命周期函數  ngOnDestroy  元件銷毀後執行 (重要)

  constructor() {       console.log('00構造函數執行了---除了使用簡單的值對局部變量進行初始化之外,什麼都不應該做')     }

    ngOnChanges() {       console.log('01ngOnChages執行了---當被綁定的輸入屬性的值發生變化時調用(父子元件傳值的時候會觸發)');     }

    ngOnInit() {         console.log('02ngOnInit執行了--- 請求資料一般放在這個裡面');        }

    ngDoCheck() {         //寫一些自定義的操作         console.log('03ngDoCheck執行了---檢測,并在發生 Angular 無法或不願意自己檢測的變化時作出反應');         if(this.userinfo!==this.oldUserinfo){             console.log(

你從${this.oldUserinfo}改成${this.userinfo}

);             this.oldUserinfo = this.userinfo;         }else{    console.log("資料沒有變化");         }     }

    ngAfterContentInit() {         console.log('04ngAfterContentInit執行了---當把内容投影進元件之後調用');     }

    ngAfterContentChecked() {         console.log('05ngAfterContentChecked執行了---每次完成被投影元件内容的變更檢測之後調用');     }

    ngAfterViewInit(): void {            console.log('06 ngAfterViewInit執行了----初始化完元件視圖及其子視圖之後調用(dom操作放在這個裡面)');     }

    ngAfterViewChecked() {      console.log('07ngAfterViewChecked執行了----每次做完元件視圖和子視圖的變更檢測之後調用');     }

    ngOnDestroy() {         console.log('08ngOnDestroy執行了····');     }

Ionic4内置生命周期函數使用demo

import { Component, OnInit } from '@angular/core';

import { StorageService } from '../services/storage.service';

@Component({

  selector: 'app-tab4',

  templateUrl: './tab4.page.html',

  styleUrls: ['./tab4.page.scss'],

})

export class Tab4Page implements OnInit {

  public userinfo:any='';

  constructor(public storage:StorageService) {



  }

  ngOnInit() { }

  ionViewWillEnter(){

    console.log('ionViewWillEnter');

  }

  ionViewDidEnter(){console.log('ionViewDidEnter');  }

}
           

繼續閱讀