Visualforce ページでのコンポーネントの使用

Lightning Web コンポーネントを Visualforce ページに追加することで、Visualforce に対して行ってきた投資を活用できます。Lightning Web コンポーネントを使用して新機能を実装し、それを既存の Visualforce ページで使用できます。

Visualforce の Lightning コンポーネントは、Lightning Out (Aura および Lightning Web コンポーネントをほぼすべての Web ページに埋め込むことができる強力かつ柔軟な機能) に基づいています。Visualforce と共に使用すると、いくつのかの細かな要素が簡略化されます。たとえば、認証を処理したり、接続アプリケーションを設定したりする必要がなくなります。

その他の点では、Visualforce の Lightning コンポーネントは Lightning Out と同じように使用できます。詳細は、「Lightning Out」を参照してください。

次の 3 ステップで Lightning Web コンポーネントを Visualforce ページに追加します。

Visualforce ページの先頭に <apex:includeLightning/> を追加します。このコンポーネントは Visualforce の Lightning コンポーネントで使用される JavaScript ファイルを読み込みます。

スタンドアロン Aura 連動関係アプリケーションを作成します。アプリケーションをグローバルにアクセス可能にし、ltng:outApp を拡張します。使用するすべての Lightning 定義 (コンポーネントなど) の連動関係を宣言します。

次の例の Aura 連動関係アプリケーションは <aura:dependency> Aura タグを使用して、標準 Lightning コンポーネントの lightning:button を使用することを示します。

使用するすべての Lightning Web コンポーネントに <aura:dependency> タグを追加します。<namespace:camelCaseComponentName> 命名規則を使用して、カスタム Lightning Web コンポーネントを参照します。

ltng:outApp から拡張すると、SLDS リソースがページに追加されて、Salesforce Lightning Design System (SLDS) でコンポーネントのスタイルを設定できるようになります。SLDS リソースをページに追加しない場合、代わりに ltng:outAppUnstyled から拡張します。

このアプリケーションを Visualforce ページで参照するには、次の JavaScript コードを使用します。theNamespace はアプリケーションの名前空間プレフィックスです。つまり、組織の名前空間か、アプリケーションを提供する管理パッケージの名前空間のいずれかになります。

アプリケーションが組織で定義されている場合 (管理パッケージに含まれていない場合)、次の例に示すように、代わりにデフォルトの c 名前空間を使用します。組織で名前空間が定義されていない場合は、デフォルトの名前空間を_使用する必要があります_。

Lightning 連動関係アプリケーションの作成についての詳細は、「Lightning Out の連動関係」を参照してください。

最後に、$Lightning.createComponent(String type, Object attributes, String domLocator, function callback) を使用して、最上位コンポーネントをページに追加します。

前の例の lwcvf.app を使用して lightning:button を作成するサンプル Visualforce ページを見てみましょう。

$Lightning.createComponent() コールにより「Press Me!」というラベルの付いたボタンが作成されます。このボタンは、lightningvf という ID を持つ DOM 要素に挿入されます。ボタンが追加されてページでアクティブになると、コールバック関数が呼び出されて console.log() ステートメントを実行します。コールバックは、作成されたコンポーネントを唯一の引数として受信します。このシンプルな例では、ボタンには何も機能が割り当てられていません。

ページ上で $Lightning.use() を複数回コールできますが、すべてのコールで同じスタンドアロン Aura 連動関係アプリケーションを参照する必要があります。

$Lightning.use() および $Lightning.createComponent() の使用についての詳細は、「Lightning Out のマークアップ」を参照してください。

Lightning コンポーネントは、ユーザのブラウザに Cookie を設定します。Lightning コンポーネントと Visualforce は異なるドメインから提供されるため、これらの Cookie は「サードパーティ」 Cookie となります。ユーザは、ブラウザ設定でサードパーティの Cookie を許可する必要があります。Safari の [サイト越えトラッキングを防ぐ] 設定を無効にする要件を含む詳細は、「Lightning Out の要件」を参照してください。

関連トピック