离子4:ngOnInit与ionViewWillEnter

Var*_*eja 6 ionic-framework angular ionic4 angular-lifecycle-hooks

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

角生命周期挂钩-ngOnInit

ngOnInit() {
    this.getData();
}
Run Code Online (Sandbox Code Playgroud)

离子生命周期挂钩-ionViewWillEnter

ionViewWillEnter() {
    this.getData();
}
Run Code Online (Sandbox Code Playgroud)

Pho*_*log 9

离子4迁移指南是这样说的:

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

因此,底线就是喜欢角的生命周期挂钩一样ngOnInit,如果可能的。唯一真正的例外是处理 Ionics 动画系统,例如检查组件是否已完成进入动画。


siv*_*mar 8

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

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

我认为一旦ionviewwillenter会更好


小智 6

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

对于初始化,您必须使用

ngOnInit()
Run Code Online (Sandbox Code Playgroud)

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

请更换

ionviewwillenter
Run Code Online (Sandbox Code Playgroud)

ngAfterViewInit()
Run Code Online (Sandbox Code Playgroud)

这将正常工作。