在使用 Ionic 4 创建混合应用程序时,使用 Angular Lifecycle Hook 或 Ionic Lifecycle Hooks 专门用于初始化哪个更好?
角度生命周期钩 - ngOnInit
ngOnInit() {
this.getData();
}
离子生命周期钩 - ionViewWillEnter
ionViewWillEnter() {
this.getData();
}
ionViewWillEnter — 进入页面时触发(如果它从堆栈返回时也是如此)
ngOnInit 不会被触发,如果您在将页面放入堆栈后返回页面
我认为一旦离子视图会进入更好
Ionic 4 迁移指南是这样说的:
在 V4 中,我们现在能够利用 角。但在某些情况下,您可能希望访问 当组件在其路由期间完成动画处理时触发的事件 改变。在这种情况下,
ionViewWillEnter
,ionViewDidEnter
,ionViewWillLeave
和ionViewDidLeave
已从 V3 移植过来。 使用这些事件将动作与 Ionic 自己的动画协调起来 系统。
因此,如果可能的话,底线是更喜欢像ngOnInit
这样的 Angular 生命周期钩子。唯一真正的例外是处理Ionics动画系统,例如检查组件是否已完成其进入动画。
在 Ionic 4 中,生命周期事件与角度生命周期事件相同。离子 3 生命周期事件在这里不起作用。
对于初始化,您必须使用
ngOnInit()
如果要在视图初始化后,
请更改
ionviewwillenter
自
ngAfterViewInit()
这将工作正常。
ngOnInit
在组件初始化期间触发一次。此事件可用于初始化本地成员,并调用只需要执行一次的服务。
离子视图将输入
如果您使用
ngOnInit()
则 API 数据无法正确加载和值未更新,所以我强烈建议
ionViewWillEnter()