【问题标题】:ngOnInit vs ionViewDidLoad in ionic 2 or ionic 2+离子 2 或离子 2+ 中的 ngOnInit 与 ionViewDidLoad
【发布时间】:2017-09-27 22:24:50
【问题描述】:
我将使用哪一个来初始化数据,为什么?
ngOnInit() {
this.type = 'category';
this.getData();
this.setData();
}
ionViewDidLoad() {
this.type = 'category';
this.getData();
this.setData();
}
【问题讨论】:
标签:
angular
ionic2
ionic3
ionic4
【解决方案2】:
ngOnInit 是 Angular2 调用的生命周期钩子,表示 Angular 已完成创建组件。
ionViewDidLoad 与 Ionic 的 NavController 生命周期事件有关。它在页面加载后运行。这个事件在每个页面被创建时只发生一次。
基本上两者都是初始化组件数据的好地方。
但是要使用ngOnInit,你需要实现Angular的OnInit类,
另一方面,ionViewDidLoad 只能为从NavController 推送/弹出的组件定义。
所以我会说将ionViewDidLoad 用于NavController 堆栈中的组件,将ngOnInit 用于其他组件。
【解决方案3】:
这两个函数的工作方式相同,它们在视图最初加载到 DOM 时被调用。
关于 ionic2s 生命周期挂钩的精彩博客 here。