実行ionic g page pageName
すると、.ts、.css、および .html ファイルが生成されます。
.ts ファイル内に呼び出された関数がionViewDidLoad(){}
あり、ビューが表示される前にこれが出力されます。
これはコンストラクター自体で実行できると思いますか?
誰かがこの機能に関するブログや説明の参照を教えてもらえますか?
実行ionic g page pageName
すると、.ts、.css、および .html ファイルが生成されます。
.ts ファイル内に呼び出された関数がionViewDidLoad(){}
あり、ビューが表示される前にこれが出力されます。
これはコンストラクター自体で実行できると思いますか?
誰かがこの機能に関するブログや説明の参照を教えてもらえますか?
そうです、多くのことがコンストラクターまたはの両方で実行できionViewDidLoad
、結果は同じになります...
ただし、 と の主な違いは、constructor
はionViewDidLoad
(constructor
コンポーネントがインスタンス化されたとき) 1 回だけ実行されますが、ionViewDidLoad
メソッドはビューに入る (読み込まれる)たびに実行されることです。
たとえば、リモート データソースからデータをロードする場合、コンストラクターで実行すると、データは 1 回だけ取得されます。そのデータが十分に速く変化する可能性がある場合はionViewDidLoad
、ページが読み込まれるたびに最新のデータが取得され、ビューに表示されるように、メソッドでデータを取得することをお勧めします。
に関するもう 1 つの重要な事実は、DOM と対話したい場合があるということです (マップを初期化するためなど)。ionViewDidLoad
その場合、コンストラクターで DOM にアクセスしようとすると、その時点で DOM の準備ができておらず、map 要素を取得できないことがわかります。ionViewDidLoad
その時点で (名前が示すように) ビューが既に読み込まれており、DOM が利用可能になっているため、それを行う正しいアプローチは の内部になります。
アップデート:
以下のコメントで @graphefruit が指摘したように、Ionic 2 の最新バージョンではionViewDidLoad
、ページがキャッシュされていない場合にのみ起動します。ionViewWillEnter
またはionViewDidEnter
、ページに入るたびに起動されます。