インターフェース
Java などのオブジェクト指向言語では、一連のメソッド署名を定義するインターフェースという概念がサポートされています。インターフェースを実装するクラスでは、メソッドの実装を提供する必要があります。Java のインターフェースを直接インスタンス化することはできませんが、そのインターフェースを実装するクラスをインスタンス化することはできます。
同様に、Lightning コンポーネントフレームワークでは、属性を定義することでコンポーネントの形状を定義するインターフェースの概念がサポートされています。
インターフェースは、<aura:interface> タグで始まります。次のタグのみを含めることができます。
- インターフェースの属性を定義する <aura:attribute> タグ。
- 起動できるイベントを定義する <aura:registerEvent> タグ。
インターフェースでは、マークアップ、レンダラ、コントローラなどを使用できません。
インターフェースを使用するには、インターフェースを実装する必要があります。実装しないと、インターフェースをマークアップで直接使用できません。<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 つしか拡張できないため、一部の設計パターンではインターフェースのほうが便利です。