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