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