インターフェース
インターフェースは、実装するコンポーネントに含まれる属性、イベント、メソッドを定義することによりコンポーネントの形状を定義します。インターフェースを使用するには、コンポーネントでインターフェースを実装する必要があります。インターフェースはマークアップで直接使用できません。
インターフェースは、<aura:interface> タグで始まり、次のタグを含めることができます。
- <aura:attribute>
- このタグは、属性を定義します。インターフェースには 0 個以上の属性を設定できます。
- <aura:registerEvent>
- このタグは、インターフェースを実装するコンポーネントから起動できるイベントを登録します。インターフェースにはイベントを起動するロジックはありません。イベントを起動するコードは、インターフェースを��装するコンポーネントにあります。
- <aura:method>
- このタグは、インターフェースを実装するコンポーネントの API の一部としてメソッドを定義します。インターフェースにはメソッドのロジックはありません。メソッドのロジックは、インターフェースを実装するコンポーネントにあります。
インターフェースでは、マークアップ、レンダラ、コントローラなどを使用できません。
インターフェースの実装
インターフェースを実装するには、<aura:component> タグの implements システム属性を、実装するインターフェースの名前に設定します。次に例を示します。
1<aura:component implements="mynamespace:myinterface" >コンポーネントは、インターフェースを実装し、別のコンポーネントを拡張できます。
1<aura:component extends="ns1:cmp1" implements="ns2:intf1" >インターフェースは、カンマ区切りのリストを使用した複数のインターフェースを拡張できます。
1<aura:interface extends="ns:intf1,ns:int2" >抽象コンポーネントのコンテンツには制限が少ないため、インターフェースより一般的です。コンポーネントでは、複数のインターフェースを実装できますが、抽象コンポーネントは 1 つしか拡張できないため、一部の設計パターンではインターフェースのほうが便利です。
例
インターフェースの例を次に示します。
1<aura:interface>
2 <aura:attribute name="value" type="String"/>
3
4 <aura:registerEvent name="onItemSelected" type="ui:response"
5 description="The event fired when the user selects an item" />
6
7 <aura:method name="methodFromInterface">
8 <aura:attribute name="stringAttribute" type="String" default="default string"/>
9 </aura:method>
10</aura:interface>