カスタムコンポーネントとは?
メソッドでコードをカプセル化すると、プログラムでそのメソッドを複数回利用できるのと同様に、カスタムコンポーネントで共通のデザインパターンをカプセル化することにより 1 つ以上の Visualforce ページでそのコンポーネントを複数回利用することができます。
たとえば、Visualforce ページを使用してフォトアルバムを作成するとします。アルバム内のそれぞれの写真の境界線は独自の色になっており、その下にはテキストキャプションが表示されます。アルバム内のすべての写真を表示する場合に Visualforce マークアップを繰り返すのではなく、画像、境界線の色、およびキャプションを配した singlePhoto という名前のカスタムコンポーネントを定義し、これらの属性を使用してページ上に画像を表示できます。一度定義すると、組織内のすべての Visualforce ページで、<apex:dataTable> や <apex:relatedList> などの標準コンポーネントと同じように、singlePhoto カスタムコンポーネントを活用できます。
開発者がマークアップを再利用できるページテンプレートとは異なり、カスタムコンポーネントは、次の理由でページテンプレートよりも強力であり、柔軟性に優れています。
- カスタムコンポーネントにより、開発者は、各コンポーネントに渡せる属性を定義できます。属性の値によって、最終ページでのマークアップの表示方法と、コンポーネントのそのインスタンスに対して実行されるコントローラーベースのロジックを変更できます。この動作は、テンプレートのものとは異なります。テンプレートでは、テンプレートを使用するページからテンプレートの定義自体に情報を渡す方法がありません。
- カスタムコンポーネントの説明は、標準コンポーネントの説明と並んで、アプリケーションのコンポーネント参照ダイアログに表示されます。一方、テンプレートの説明は、ページとして定義されているために、Salesforce の [設定] エリアからしか参照できません。