【问题标题】:using ngOnInit() method on Ionic page - whether we need to import OnInit and write Class implements OnInit?在 Ionic 页面上使用 ngOnInit() 方法 - 我们是否需要导入 OnInit 并编写 Class 实现 OnInit?
【发布时间】:2019-05-15 13:29:15
【问题描述】:

这是用于在页面上加载带有数据的变量的代码,使用ngOnInit 方法:

但是,我注意到即使我们不导入 OnInit(第 1 行)并且不写 implements OnInit(第 10 行),该方法仍然会被调用。最佳做法是什么?

【问题讨论】:

  • Please don't post your code as an image。难以阅读,阻止基于文本的搜索,并降低帖子的整体展示价值。
  • @veben 即使我们不导入和实施该方法也有效。我们编写 ngOnInit(){...do something...} 就足够了,这很有效。因此问题。
  • @veben 那是......不是真的。没有它你也可以使用

标签: angular typescript ngoninit


【解决方案1】:

首先,如果您使用的是 Ionic,我建议您检查 ionic 生命周期事件。更多信息可以在here找到。

要回答您的问题,如果您想使用 OnInit,您应该导入 OnInit 并将 implements OnInit 添加到类声明中(正如您已经完成的那样)。如果你不这样做,Typescript 类型检查会给你一个错误消息(因为这是 typescript)。这是一个很好的实践,验证者不会对无效代码大喊大叫。

如果您不想添加implements OnInit,您可以使用事件ionViewDidLoad 或任何其他最适合您需要的方法。

总结一下最佳实践:

  • 如果您正在开发 Ionic 应用程序并创建页面,请使用其中一个 Ionic 事件。
  • 如果您正在开发 Angular 应用程序,或者如果您需要在 Ionic 中初始化组件,请使用 ngOnInit 并在类声明旁边执行 implements OnInit

【讨论】:

  • 您可以在不实现接口的情况下使用 ngOninit(最好实现它们)。你也可以在 ionic 中使用角度生命周期钩子。例如:stackoverflow.com/questions/43703271/…
  • @SurajRao 当然可以!这就是我写的,你可以使用 ngOnInit,但在没有实现 OnInit 语句的情况下使用它并不是最佳实践。关于 ionViewDidLoad,由于作者要求它提供正在加载页面的组件,因此我提供了使用 ionViewDidLoad 而不是 ngOnInit 的建议。
  • 您的回答似乎建议不要在 Ionic 中使用角钩,这不一定是真的。否则我看不出有什么问题
猜你喜欢
  • 2023-03-04
  • 1970-01-01
  • 2021-10-30
  • 2021-11-16
  • 2021-10-03
  • 2019-03-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-30
相关资源
最近更新 更多