angular - ionViewDidLoad() 函数的目的是什么?

标签 angular typescript ionic-framework ionic2 ionic3

在运行 ionic g page pageName 时,我生成了 .ts、.css 和 .html 文件。

在 .ts 文件中,我有一个名为 ionViewDidLoad(){} 的函数,它会在我的 View 出现之前打印出来。

我相信这可以在构造函数中完成吗?

谁能给我一些关于这个功能的博客或解释的引用?

最佳答案

你是对的,很多事情都可以在构造函数或 ionViewDidLoad 中完成,结果是一样的......

但是 constructorionViewDidLoad 之间的主要区别 constructor 只会执行一次(当组件被实例化)但是 ionViewDidLoad 方法将每次进入(加载) View 时执行。

例如,如果你想从远程数据源加载数据,如果你在构造函数中这样做,数据只会被获取一次。如果该数据可以足够快地变化,更好的方法是在 ionViewDidLoad 方法中获取它,以确保每次加载页面时,获取最新数据并显示在 View 中.

关于 ionViewDidLoad 的另一个重要事实是,有时您想要与 DOM 交互(可能是为了初始化 map )。

在这种情况下,如果您尝试在构造函数中访问 DOM,您会注意到此时 DOM 还没有准备好,您将无法获取 map 元素。正确的做法是在 ionViewDidLoad 中执行此操作,因为此时(就像名称所说的那样) View 已经加载并且 DOM 现在可用。

更新:

就像@graphefruit 在下面的评论中指出的那样,在最新版本的 Ionic 2 中,如果页面未缓存,ionViewDidLoad 只会触发。 ionViewWillEnterionViewDidEnter 将在每次进入页面时触发

关于angular - ionViewDidLoad() 函数的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39869992/

相关文章:

javascript - Jest 显示访问 PropTypes 和 createClass 的 console.warn

android - ionic 启动画面未显示,并且在 ionic View 中有白屏

javascript - 使用 Typescript promise 重试直到成功/失败

Angular 6 使 http 使用 https

Angular Material : Programmatic "next" for linear stepper

javascript - Angular 2 更改检测使用数组和 @Inputs 延迟了几秒钟

javascript - 如何更改 ngx-daterangepicker-material 下拉日历的样式

没有 ngIf 的 Angular 动画

typescript - 如何在函数中使用传播作为参数?

android - 如何将cordova平台android@6.2.3升级到android@8.0.0?