この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

表示ライフサイクル中に起動されたイベント

コンポーネントはそのライフサイクルの間にインスタンス化され、表示され、さらに再表示されます。コンポーネントが再表示されるのは、プログラムまたは値が変更されて再表示が必要になった場合のみです。たとえば、ブラウザイベントがアクションをトリガしてデータが更新された場合などです。

コンポーネントの作成

コンポーネントのライフサイクルは、クライアントが HTTP 要求をサーバに送信し、コンポーネント設定データがクライアントに返されると開始します。以前の要求によってコンポーネント定義がすでにクライアント側にあり、コンポーネントにサーバとの連動関係がない場合は、このサーバとの往復のやりとりは行われません。

ネストされたいくつかのコンポーネントを含むアプリケーションを見てみましょう。フレームワークは、アプリケーションをインスタンス化し、v.body facet の子を通って、各コンポーネントを作成します。まず、コンポーネント定義とその親階層全体を作成してから、コンポーネント内で facet を作成します。また、属性、インターフェース、コントローラ、アクションの定義を含め、すべてのコンポーネントの連動関係もサーバに作成します。

コンポーネントインスタンスが作成されると、逐次化されたコンポーネント定義とインスタンスがクライア��トに送信されます。定義はキャッシュされますが、インスタンスデータはキャッシュされません。クライアントは、応答の逐次化を解除して JavaScript オブジェクトまたは対応付けを作成します。その結果、コンポーネントインスタンスの表示に使用するインスタンスツリーが作成されます。コンポーネントツリーの準備が整うと、すべてのコンポーネントに対して init イベントが起動されます。起動は、子コンポーネントから開始し、親コンポーネントで終了します。

コンポーネントの表示

表示ライフサイクルは、コンポーネントが明示的に非表示にされない限りコンポーネントの有効期間内に 1 回発生します。コンポーネントを作成すると、次の処理が行われます。

  1. コンポーネントを構成するコンポーネントサービスによって init イベントが起動され、初期化が完了したことを通知します。
    1<aura:handler name="init" value="{!this}" action="{!c.doInit}"/>
    コンポーネントの表示が開始される前に、init ハンドラをカスタマイズして、独自のコントローラロジックを追加できます。詳細は、「コンポーネントの初期化時のアクションの呼び出し」 を参照してください。
  2. ツリーのコンポーネントごとに、render() の基本実装またはカスタムレンダラがコールされ、コンポーネントの表示が開始されます。詳細は、「カスタムレンダラの作成」を参照してください。コンポーネントの作成プロセスと同様に、表示はルートコンポーネントで開始され、子コンポーネントとスーパーコンポーネントの順に処理され (存在する場合)、子サブコンポーネントで終了します。
  3. コンポーネントが DOM に表示されると、afterRender() がコールされ、これらの各コンポーネント定義について表示が完了したことが通知されます。これにより、フレームワークの表示サービスで DOM 要素が作成されたら、DOM ツリーを操作できます。
  4. クライアントがサーバ要求 XHR への応答の待機を終了したことを示すために、aura:doneWaiting イベントが起動されます。このイベントは、クライアント側コントローラアクションに結び付けられたハンドラを追加することで処理できます。

    aura:doneWaiting イベントは非推奨になりました。aura:doneWaiting アプリケーションイベントは、サーバ応答 (アプリケーションの他のコンポーネントからの応答も含む) ごとに起動されます。コンポーネントがスタンドアロンアプリケーションで完全に独立した状態で実行されておらず、Lightning Experience や Salesforce アプリケーションに含まれている場合、コンテナアプリケーションはイベントハンドラを複数回トリガすることがあります。この動作により、各イベントを適切に処理することが困難になります。

    メモ

  5. フレームワークの表示サービスによって DOM 要素が挿入されたら、フレームワークによって render イベントが起動され、DOM ツリーを操作できるようになります。render イベントの処理は、カスタムレンダラの作成や afterRender() の上書きよりも優先されます。詳細は、「render イベントの処理」を参照してください。
  6. 最後に、aura:doneRendering イベントが表示ライフサイクルの終了時に起動されます。

    aura:doneRendering イベントは非推奨になりました。コンポーネントがスタンドアロンアプリケーションで完全に独立した状態で実行されておらず、Lightning Experience や Salesforce アプリケーションなどの複雑なアプリケーションに含まれている場合、コンテナアプリケーションはイベントハンドラを複数回トリガすることがあります。この動作により、各イベントを適切に処理することが困難になります。

    メモ

ネストされたコンポーネントの表示

myApp.app というアプリケーションに myCmp.cmp コンポーネントが含まれ、そのコンポーネントに ui:button コンポーネントが含まれるとします。ネストされたコンポーネントは特定の順序で表示されます。

初期化中、init() イベントは、ui:buttonui:myCmpmyApp.app の順序で起動されます。