Angular 离子2或离子2+中的ngOnInit与ionViewDidLoad;
我将使用哪一个初始化数据?为什么Angular 离子2或离子2+中的ngOnInit与ionViewDidLoad;,angular,ionic2,ionic3,ionic4,Angular,Ionic2,Ionic3,Ionic4,我将使用哪一个初始化数据?为什么 ngOnInit() { this.type = 'category'; this.getData(); this.setData(); } ionViewDidLoad() { this.type = 'category'; this.getData(); this.setData(); } 这两个函数的工作方式相同,它们在视图最初加载到DOM时被调用 关于ionic2s生命周期挂钩的很棒的博客。ngOnIn
ngOnInit() {
this.type = 'category';
this.getData();
this.setData();
}
ionViewDidLoad() {
this.type = 'category';
this.getData();
this.setData();
}
这两个函数的工作方式相同,它们在视图最初加载到DOM时被调用
关于ionic2s生命周期挂钩的很棒的博客。
ngOnInit
是Angular2调用的生命周期挂钩,表示Angular已经完成了组件的创建
ionViewDidLoad
与爱奥尼亚的NavController
生命周期事件相关。它在页面加载后运行。此事件在创建每个页面时仅发生一次
基本上,两者都是初始化组件数据的好地方
但是要使用ngOnInit
您需要实现Angular的OnInit
类,
另一方面,只能为从NavController
推送/弹出的组件定义ionViewDidLoad
因此,我建议对
NavController
堆栈中的组件使用ionViewDidLoad
,对其他组件使用ngOnInit
。ionViewDidLoad触发与NavController密切相关
如果您需要独立于NavController呈现的组件的挂钩(并非ionic 2应用程序中的所有组件都是页面),您应该使用而不是
现在,哪一个适合您,这取决于实施案例
无论如何,这些钩子的名字在大多数情况下都是不言自明的。解释得很好。谢谢。每次刷新页面时都会触发哪些生命周期事件?回答得很好。我想补充一点,还有ionViewWillEnter。这两个离子页面事件之间的主要区别是…WillEnter()总是在组件呈现之前激发,而…DidLoad()不会对缓存的页面激发。