コンポーネントの初期化時のアクションの呼び出し
init イベントを使用して、コンポーネントを構築してから表示するまでの間にコンポーネントを更新したり、イベントを起動したりできます。
コンポーネントが別のコンポーネントまたはアプリケーションに含まれる場合は、まず内部のコンポーネントから初期化されます。
例を見てみましょう。
コンポーネントのソース
1<aura:component>
2 <aura:attribute name="setMeOnInit" type="String" default="default value" />
3 <aura:handler name="init" value="{!this}" action="{!c.doInit}"/>
4
5 <p>This value is set in the controller after the component initializes and before rendering.</p>
6 <p><b>{!v.setMeOnInit}</b></p>
7
8</aura:component>クライアント側コントローラの参照元
1({
2 doInit: function(cmp) {
3 // Set the attribute value.
4 // You could also fire an event here instead.
5 cmp.set("v.setMeOnInit", "controller init magic!");
6 }
7})コンポーネントのソースを見て、どのように機能するのかを確認しましょう。重要なのは次の行です。
1<aura:handler name="init" value="{!this}" action="{!c.doInit}"/>これで、コンポーネントの init イベントハンドラが登録されます。init は、すべてのコンポーネントに送信される定義済みイベントです。コンポーネントが初期化されたら、コンポーネントのコントローラで doInit アクションがコールされます。このサンプルでは、コントローラアクションで属性値を設定していますが、イベントの起動などの処理を実行することもできます。
value="{!this}" を設定すると、これ自体が値のイベントとしてマークされます。init イベントでは、常にこの設定を使用する必要があります。