【问题标题】:Ionic 4 : ngOnInit vs ionViewWillEnter离子 4:ngOnInit 与 ionViewWillEnter
【发布时间】:2019-06-15 03:59:22
【问题描述】:

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

Angular 生命周期钩子 - ngOnInit

ngOnInit() {
    this.getData();
}

离子生命周期挂钩 - ionViewWillEnter

ionViewWillEnter() {
    this.getData();
}

【问题讨论】:

    标签: angular ionic-framework ionic4 angular-lifecycle-hooks


    【解决方案1】:

    我正在开发一个显示 WordPress 帖子的 Ionic4 应用程序>

    【讨论】:

      【解决方案2】:

      如果你使用

      ngOnInit()

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

      ionViewWillEnter()

      【讨论】:

        【解决方案3】:

        ngOnInit

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

        ionViewWillEnter

        【讨论】:

          【解决方案4】:

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

          对于初始化,您必须使用

          ngOnInit()
          

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

          请更改

          ionviewwillenter
          

          ngAfterViewInit()
          

          这会很好用。

          【讨论】:

            【解决方案5】:

            Ionic 4 migration guide 是这样说的:

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

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

            【讨论】:

              【解决方案6】:

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

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

              我认为一旦 ionviewwillenter

              会更好

              【讨论】:

                猜你喜欢
                • 2017-09-27
                • 2018-03-06
                • 1970-01-01
                • 2017-09-24
                • 1970-01-01
                • 2020-11-17
                • 2019-08-16
                • 1970-01-01
                • 2019-10-12
                相关资源
                最近更新 更多