19

在使用 Ionic 4 创建混合应用程序时,哪个更好地使用 Angular Lifecycle Hook 或 Ionic Lifecycle Hook 专门用于初始化?

Angular 生命周期钩子 - ngOnInit

ngOnInit() {
    this.getData();
}

离子生命周期挂钩 - ionViewWillEnter

ionViewWillEnter() {
    this.getData();
}
4

5 回答 5

9

ionViewWillEnter — 进入页面时触发(如果它从堆栈返回)

ngOnInit不会被触发,如果你把它放入堆栈后返回一个页面

我认为一旦ionviewwillenter会更好

于 2019-03-01T18:40:54.453 回答
9

Ionic 4 迁移指南是这样说的:

使用 V4,我们现在能够利用 Angular 提供的典型事件。但在某些情况下,您可能希望访问组件在其路由更改期间完成动画时触发的事件。在这种情况下,ionViewWillEnterionViewDidEnterionViewWillLeaveionViewDidLeave已从 V3 移植过来。使用这些事件与 Ionic 自己的动画系统协调动作。

所以底线是尽可能喜欢Angular 生命周期钩子ngOnInit。唯一真正的例外是处理 Ionics 动画系统,例如检查组件是否已完成进入动画。

于 2019-01-21T18:48:36.187 回答
6

在 Ionic 4 中,生命周期事件与角度生命周期事件相同。Ionic 3 生命周期事件在这里不起作用。

对于初始化,您必须使用

ngOnInit()

如果你想在视图初始化后,

请更换

ionviewwillenter

ngAfterViewInit()

这将工作正常。

于 2019-04-04T08:14:31.697 回答
0

如果你使用

ngOnInit()

然后 API 数据无法正确加载并且值没有更新,所以我强烈推荐

ionViewWillEnter()

于 2021-05-21T06:21:44.890 回答
0

ngOnInit

在组件初始化期间触发一次。此事件可用于初始化本地成员并调用只需要执行一次的服务。

ionViewWillEnter

于 2019-12-05T06:08:40.297 回答