この例では、新しいカスタム要素 を定義します。コンストラクター内で、 this.attachShadow({ mode: 'open' }) を使用してシャドウ ルートをアタッチし、それにコンテンツを追加します。シャドウ ルート内で定義されたスタイルは、ドキュメントの残りの部分から分離されます。

Shadow DOM モード

シャドウ ルートを作成するとき、そのモードをオープンまたはクローズのいずれかに指定できます。

クローズドモードの例

const shadow = this.attachShadow({ mode: \\'closed\\' });

このモードでは、コンポーネントの外部からシャドウにアクセスできず、保護層がさらに追加されます。

Shadow DOM のスタイリング

Shadow DOM 内で直接スタイルを定義できます。これらのスタイルは、シャドウ ツリー内のコンテンツにのみ適用されます。

const style = document.createElement(\\'style\\');style.textContent = `    div {        font-size: 20px;        color: red;    }`;shadow.appendChild(style);

「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Shadow DOM を理解する: カプセル化された Web コンポーネントの鍵

Shadow DOM を理解する: カプセル化された Web コンポーネントの鍵

2024 年 11 月 7 日に公開
ブラウズ:987

Understanding Shadow DOM: The Key to Encapsulated Web Components

現代の Web 開発では、再利用可能で保守可能なコンポーネントを作成することが不可欠です。 Web コンポーネント標準の一部である Shadow DOM は、この目標を達成する上で重要な役割を果たします。この記事では、Shadow DOM の概念、その利点、プロジェクトで効果的に使用する方法について詳しく説明します。

シャドウ DOM とは何ですか?

Shadow DOM は、DOM と CSS の一部を Web コンポーネント内にカプセル化し、ドキュメントの残りの部分から確実に分離できるようにする技術です。このカプセル化により、スタイルとスクリプトの漏洩が防止され、モジュール式で保守可能なコンポーネントの構築が容易になります。

Shadow DOM の主要な概念

  1. シャドウ ツリー: Web コンポーネントにアタッチされた別個の非表示の DOM ツリー。
  2. シャドウ ルート: シャドウ ツリーのルート ノード。
  3. Shadow Host: シャドウ ツリーをホストする通常の DOM 要素。
  4. シャドウ境界: シャドウ ツリーと通常の DOM の間の境界。

Shadow DOM の利点

1. カプセル化

Shadow DOM は、コンポーネントの内部構造とアプリケーションの残りの部分を明確に分離します。このカプセル化により、スタイルと動作の競合が防止され、コンポーネントがより予測可能になり、保守が容易になります。

2. スタイルの分離

Shadow DOM を使用すると、シャドウ ツリー内のコンテンツにのみ適用されるスタイルを定義できます。この分離により、コンポーネントのスタイルがページの残りの部分に影響を及ぼさないことが保証され、またその逆も同様です。

3. 再利用性の向上

カプセル化されたコンポーネントは自己完結型であるため、再利用可能です。統合の問題を心配することなく、これらのコンポーネントをさまざまなプロジェクト間で簡単に共有して使用できます。

Shadow DOM の作成

JavaScript で Shadow DOM を作成する簡単な例を見てみましょう。



    Shadow DOM Example

この例では、新しいカスタム要素 を定義します。コンストラクター内で、 this.attachShadow({ mode: 'open' }) を使用してシャドウ ルートをアタッチし、それにコンテンツを追加します。シャドウ ルート内で定義されたスタイルは、ドキュメントの残りの部分から分離されます。

Shadow DOM モード

シャドウ ルートを作成するとき、そのモードをオープンまたはクローズのいずれかに指定できます。

  • オープン モード: シャドウ ルートには JavaScript を使用してアクセスでき、対話と操作が可能です。
  • クローズド モード: シャドウ ルートには JavaScript からアクセスできず、より高いレベルのカプセル化が提供されます。

クローズドモードの例

const shadow = this.attachShadow({ mode: 'closed' });

このモードでは、コンポーネントの外部からシャドウにアクセスできず、保護層がさらに追加されます。

Shadow DOM のスタイリング

Shadow DOM 内で直接スタイルを定義できます。これらのスタイルは、シャドウ ツリー内のコンテンツにのみ適用されます。

const style = document.createElement('style');
style.textContent = `
    div {
        font-size: 20px;
        color: red;
    }
`;
shadow.appendChild(style);

結論

Shadow DOM は、カプセル化とスタイル分離を提供することで Web コンポーネントの構築方法を強化する強力な機能です。 Shadow DOM を活用することで、開発者は、任意の Web アプリケーションにシームレスに統合されるモジュール式で再利用可能で保守可能なコンポーネントを作成できます。 Shadow DOM を理解して活用することは、現代の Web 開発者にとって貴重なスキルです。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/mdhassanpatwary/ Understanding-shadow-dom-the-key-to-encapsulated-web-components-4bki?1 侵害がある場合は、[email protected] までご連絡ください。それを削除するには
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3