Lightning コンポーネント開発者ガイド
Winter '25 (API version 62.0)
Spring '24 (API version 60.0)
Winter '22 (API version 53.0)
Summer '21 (API version 52.0)
Summer '19 (API version 46.0)
Spring '19 (API version 45.0)
Winter '19 (API version 44.0)
Summer '18 (API version 43.0)
Spring '18 (API version 42.0)
Winter '18 (API version 41.0)
Summer '17 (API version 40.0)
Spring '17 (API version 39.0)
Winter '17 (API version 38.0)
Summer '16 (API version 37.0)
Spring '16 (API version 36.0)
Winter '16 (API version 35.0)
Summer '15 (API version 34.0)
Spring '15 (API version 33.0)
Winter '15 (API version 32.0)
JavaScript ES5 の厳格モードの適用
サポートされている JavaScript API フレームワークのメソッドのみへのアクセス
Locker Service による影響
コンポーネントの Locker Service の無効化
コンポーネントの API バージョンを混在させない
サポートされていないブラウザで無効化された Locker Service
JavaScript プロトタイプの凍結
Locker Service とは?
Locker Service は、Lightning コンポーネントのための強力なセキュリティアーキテクチャです。Locker Service では、Lightning コンポーネントがそれぞれが属する名前空間ごとに分離されるため、セキュリティが向上します。また、Locker Service では、コードのサポート機能が向上するベストプラクティスが促進されます。これは、サポートされる API へのアクセスのみを許可し、公開されていないフレームワーク内部へのアクセスを排除することで実現します。
-
JavaScript ES5 の厳格モードの適用
Locker Service では JavaScript ES5 の厳格モードが暗黙的に有効になります。コードで "use strict" を指定する必要がありません。JavaScript の厳格モードにより、コードの安全性、堅牢性、サポート範囲が拡大されます。 -
DOM のアクセスコンテインメント
コンポーネントは、DOM をトラバースして、同じ名前空間内のコンポーネントで作成された要素にアクセスすることしかできません。この動作により、他の名前空間内のコンポーネントで所有される DOM 要素にアクセスするアンチパターンを回避できます。 -
セキュアなラッパー
Locker Service は、オブジェクトを非表示にすることや、それらのオブジェクトのセキュアなバージョンを提供することで、グローバル参照に制限を適用します。たとえば、window のセキュアなバージョンは SecureWindow です。セキュアなバージョンは、メソッドおよびプロパティに応じて絞り込まれたり、非表示になったりする点を除き、セキュアでないバージョンと同じ方法でやりとりできます。 -
サポートされている JavaScript API フレームワークのメソッドのみへのアクセス
サポートされている公開済みの JavaScript API フレームワークのメソッドにのみアクセスできます。これらのメソッドは、https://<myDomain>.lightning.force.com/auradocs/reference.app (<myDomain> はカスタム Salesforce ドメインの名前) にあるリファレンスドキュメントアプリケーションで公開されています。以前はサポートされていないメソッドにアクセスできたため、サポートされていないメソッドが変更または削除されたときにコードが破損するおそれがありました。 -
Locker Service による影響
Locker Service の影響を受けるものと、受けないものについて見てみましょう。 -
コンポーネントの Locker Service の無効化
コンポーネントの API バージョンを 39.0 以下に設定すると、コンポーネントの Locker Service を無効にできます。コンポーネントが API バージョン 40.0 以上に設定されている場合は、Locker Service が有効になります。API バージョン 40.0 は、Locker Service がすべての組織で有効化された Summer '17 に相当します。 -
コンポーネントの API バージョンを混在させない
一貫性を保ちデバッグを容易にするため、アプリケーション、コンテインメント階層 (コンポーネント内のコンポーネント)、または拡張階層 (コンポーネントを拡張するコンポーネント) のすべてのコンポーネントに同じ API バージョンを設定することをお勧めします。 -
サポートされていないブラウザで無効化された Locker Service
Locker Service は、ブラウザの JavaScript 機能である厳格モード、Map オブジェクト、Proxy オブジェクトのサポートに依存します。ブラウザが要件を満たしていない場合、Locker Service はそのすべてのセキュリティ機能を適用できず、無効になります。