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