Ionic生命周期

ionic的生命周期

1、ionic的生命周期函数:

import {
        Component
    } from '@angular/core';
    
    @Component({
        template: 'Hello World'
    })
    class HelloWorld {
        ionViewDidLoad() {
            console.log("I'm alive!");
        }
        ionViewWillLeave() {
            console.log("Looks like I'm about to leave :(");
        }
    
        ionViewCanLeave(): boolean {
            // here we can either return true or false
            // depending on if we want to leave this view
            if (isValid(randomValue)) {
                return true;
            } else {
                return false;
            }
        }
    }
  • Pages的生命周期函数:

生命周期事件它被定义在不一样的navigation状态期间,它们能被定义到任何push/pop在NavController中的组件。缓存

  • Pages的生命周期函数列表:

ionViewDidLoad 当页面已经载入后,这个事件仅当页面被建立时执行一次。若是一个页面离开,可是已经缓存,那么后续的查看也不会触发。当为某个页面设置代码时,可放在该方法里。
ionViewWillEnter当页面将要进入并变成激活页面时触发。
ionViewDidEnter当页面已经进去并激活了,无论它是不是第一次载入仍是一个缓存的页面,该事件都触发。
ionViewWillLeave当页面将要离开,将再也不是一个激活的页面时触发。
ionViewDidLeave当页面已经离开,不是一个激活页面时触发。
ionViewWillUnload当页面将要销毁并移除其元素时触发。
ionViewCanEnter在视图能够进入以前运行。 这能够在通过身份验证的视图中用做一种“保护”,您须要在视图能够进入以前检查权限。
ionViewCanLeave在视图能够离开以前运行。 这能够在通过身份验证的视图中用做一种“保护”,您须要在视图离开以前检查权限。dom

2、angular的组件生命周期函数(Lifecycle Hooks)

ngOnChanges()
当Angular(从新)设置数据绑定输入属性时响应。当被绑定的输入属性的值发生变化时调用,首次调用必定会发生在ngOnInit()以前。
ngOnInit()
在Angular第一次显示数据绑定和设置指令/组件的输入属性以后,初始化指令/组件。在第一轮ngOnChanges()完成以后调用,只调用一次。
ngDoCheck()
检测,并在发生Angular没法或不肯意本身检测的变化时做出反应。在每一个Angular变动检测周期中调用,ngOnChanges()和ngOnInit()以后。
ngAfterContentInit()
当把内容投影进组件以后调用。第一次ngDoCheck()以后调用,只调用一次。
只适用于组件。
ngAfterContentChecked()
每次完成被投影组件内容的变动检测以后调用。ngAfterContentInit()和每次ngDoCheck()以后调用,只适合组件。
ngAfterViewInit()
初始化完组件视图及其子视图以后调用。第一次ngAfterContentChecked()以后调用,只调用一次。只适合组件。
ngAfterViewChecked()
每次作完组件视图和子视图的变动检测以后调用。
ngAfterViewInit()和每次ngAfterContentChecked()以后调用。只适合组件。
ngOnDestroy
当Angular每次销毁指令/组件以前调用并清扫。 在这儿反订阅可观察对象和分离事件处理器,以防内存泄漏。在Angular销毁指令/组件以前调用。ionic

@Directive({selector: '[mySpy]'})
export class SpyDirective implements OnInit, OnDestroy {

  constructor(private logger: LoggerService) { }

  ngOnInit()    { this.logIt(`onInit`); }

  ngOnDestroy() { this.logIt(`onDestroy`); }

  private logIt(msg: string) {
    this.logger.log(`Spy #${nextId++} ${msg}`);
  }
}
相关文章
相关标签/搜索