离子 2 或离子 2+ 中的 ngOnInit 与 ionViewDidLoad
ngOnInit vs ionViewDidLoad in ionic 2 or ionic 2+
我将使用哪一个来初始化数据,为什么?
ngOnInit() {
this.type = 'category';
this.getData();
this.setData();
}
ionViewDidLoad() {
this.type = 'category';
this.getData();
this.setData();
}
这两个函数的工作方式相同,它们在视图最初加载到 DOM 时被调用。
有关 ionic2s 生命周期钩子的精彩博客 here。
ngOnInit
是由 Angular2 调用的生命周期挂钩,用于指示 Angular 已完成创建组件。
ionViewDidLoad
与 Ionic 的 NavController
生命周期事件有关。它在页面加载后运行。此事件仅在每个创建的页面发生一次。
基本上都是初始化组件数据的好地方。
但要使用 ngOnInit
,您需要实施 Angular 的 OnInit
class,
另一方面,ionViewDidLoad
只能为来自 NavController
的 pushed/popped 的组件定义。
所以我会说 ionViewDidLoad
用于 NavController
堆栈中的组件,ngOnInit
用于其他组件。
ionViewDidLoad 触发与 NavController 密切相关。
如果您需要一个独立于 NavController 呈现的组件的挂钩(并非 ionic 2 应用程序中的所有组件都是页面),您应该使用 angular lifecycle hooks instead of ionic navcontroller hooks.
现在,哪一个适合你,就看具体的实现案例了。
无论如何,大多数时候所有这些钩子的名称都是不言自明的。
我将使用哪一个来初始化数据,为什么?
ngOnInit() {
this.type = 'category';
this.getData();
this.setData();
}
ionViewDidLoad() {
this.type = 'category';
this.getData();
this.setData();
}
这两个函数的工作方式相同,它们在视图最初加载到 DOM 时被调用。
有关 ionic2s 生命周期钩子的精彩博客 here。
ngOnInit
是由 Angular2 调用的生命周期挂钩,用于指示 Angular 已完成创建组件。
ionViewDidLoad
与 Ionic 的 NavController
生命周期事件有关。它在页面加载后运行。此事件仅在每个创建的页面发生一次。
基本上都是初始化组件数据的好地方。
但要使用 ngOnInit
,您需要实施 Angular 的 OnInit
class,
另一方面,ionViewDidLoad
只能为来自 NavController
的 pushed/popped 的组件定义。
所以我会说 ionViewDidLoad
用于 NavController
堆栈中的组件,ngOnInit
用于其他组件。
ionViewDidLoad 触发与 NavController 密切相关。
如果您需要一个独立于 NavController 呈现的组件的挂钩(并非 ionic 2 应用程序中的所有组件都是页面),您应该使用 angular lifecycle hooks instead of ionic navcontroller hooks.
现在,哪一个适合你,就看具体的实现案例了。
无论如何,大多数时候所有这些钩子的名称都是不言自明的。