我将使用哪一个来初始化数据,为什么?
ngOnInit() {
this.type = 'category';
this.getData();
this.setData();
}
ionViewDidLoad() {
this.type = 'category';
this.getData();
this.setData();
}
ngOnInit
是 Angular2 调用的生命周期钩子,用于指示 Angular 已完成创建组件。
ionViewDidLoad
与 Ionic 的NavController
生命周期事件有关。它在页面加载后运行。此事件仅在每个页面创建时发生一次。
基本上两者都是初始化组件数据的好地方。
但是为了使用ngOnInit
,您需要实现 Angular 的OnInit
类,另一方面ionViewDidLoad
,只能为从NavController
.
所以我会说使用堆栈ionViewDidLoad
中的组件和其他组件。NavController
ngOnInit
ionViewDidLoad 触发与 NavController 密切相关。
如果您需要一个独立于 NavController 呈现的组件的挂钩(并非 ionic 2 应用程序中的所有组件都是页面),您应该使用角度生命周期挂钩而不是ionic navcontroller hooks。
现在,哪一个适合您,这取决于实施案例。
无论如何,所有这些钩子的名称在大多数情况下都是不言自明的。
这两个函数的工作方式相同,它们在视图最初加载到 DOM 时被调用。
关于 ionic2s 生命周期钩子的很棒的博客。