検索
ホームページウェブフロントエンドCSSチュートリアルコンテキスト認識Webコンポーネントは、あなたが思っているよりも簡単です

コンテキスト認識Webコンポーネントは、あなたが思っているよりも簡単です

この記事では、Webコンポーネントの頻繁に見過ごされているライフサイクルコールバックを調べて、コンテキスト対応要素をどのように可能にするかを示します。これらの機能の力を紹介し、その環境に反応するWebコンポーネントを構築します。

シリーズの概要

この記事は、Webコンポーネント開発の簡素化に関するシリーズの一部です。

  • Webコンポーネント:あなたが思っているよりも簡単です
  • インタラクティブなWebコンポーネント:思ったよりも簡単です
  • WordPressでWebコンポーネントを使用する:あなたが思っているよりも簡単です
  • Webコンポーネントを備えた組み込みの要素をスーパーチャージする:あなたが思っているよりも簡単
  • コンテキスト認識Webコンポーネント:あなたが思っているよりも簡単です(この記事
  • Webコンポーネントの擬似クラスと擬似要素:あなたが思っているよりも簡単です

Webコンポーネントライフサイクルコールバック

4つのキーコールバックがWebコンポーネントのライフサイクルを管理します。

  • connectedCallback :要素がDOMに追加されたときに発射されます。
  • disconnectedCallback :要素がDOMから削除されたときに発射されます。
  • adoptedCallback :要素が新しいドキュメントに移動されたときに解雇されました。
  • attributeChangedCallback :観察された属性が変更されたときに解雇されました。

実用的な例でこれらを説明しましょう。

黙示録的な人コンポーネント

を作成します<postapocalyptic-person></postapocalyptic-person>成分。それぞれの人は、その親要素の.humanまたは.zombieクラスによって決定された人間またはゾンビのいずれかです。コンポーネントは、Shadow Domを使用して適切な画像を表示します。

 customelements.define(
  「黙示録的な人」、
  クラスはhtmlelementを拡張します{
    constructor(){
      素晴らしい();
      this.shadowroot = this.attachshadow({mode: "open"});
    }
    // ...ライフサイクルコールバックがここに追加されます...
  }
);

私たちの最初のHTML:

<div class="humans">
  <postapocalyptic-person></postapocalyptic-person>
</div>
<div class="zombies">
  <postapocalyptic-person></postapocalyptic-person>
</div>

connectedCallbackを使用します

connectedCallback Whenと呼ばれます<postapocalyptic-person></postapocalyptic-person>ページに追加されます。画像を追加するために使用します。

 connectedcallback(){
  const image = document.createelement( "img");
  if(this.parentnode.classlist.contains( "人間")){
    image.src = "https://assets.codepen.io/1804713/lady.png";
  } else if(this.parentnode.classlist.contains( "zombies")){
    image.src = "https://assets.codepen.io/1804713/ladyz.png";
  }
  this.shadowroot.appendChild(画像);
}

これにより、親のクラスに基づいて正しい画像が表示されます。注: connectedCallback複数回発射できます。 this.isConnectedを使用して接続ステータスを確認します。

connectedCallbackで人々を数えます

ボタンを追加して人を追加/削除し、カウントを追跡しましょう。

<div>
  <button id="addbtn">人を追加します</button>
  <button id="rmvbtn">人を削除します</button>
  <br>人間: <span id="human-count">0</span>
  ゾンビ: <span id="zombie-count">0</span>
</div>

ボタンイベントリスナー:

 // ...(人の論理を追加/削除)...

connectedCallbackを更新してカウントを更新します。

 connectedcallback(){
  // ...(画像ロジック)...
  //画像ソースに基づいてカウントを更新します
}

disconnectedCallbackでカウントを更新します

disconnectedCallback減少は、人が削除されたときにカウントされます。画像ソースをタイプのプロキシとして使用します。

 disconnectedCallback(){
  const image = this.shadowroot.queryselector( 'img');
  //画像ソースに基づいて減少カウント
}

養子adoptedCallbackattributeChangedCallbackコールバックによるピエロの検出

隠されたピエロの可能性を紹介し、それらをに移動します<iframe></iframe>adoptedCallbackを使用し、 attributeChangedCallbackでそれらを明らかにします。この高度な例の詳細は簡潔に省略されていますが、コアコンセプトには、養子adoptedCallbackを使用して、コンポーネントが新しいドキュメントに移動されていることを検出し、変更を属性に反応し、それに応じて画像を更新することが含まattributeChangedCallbackます。

これは、ライフサイクルコールバックが動的でコンテキストを意識したWebコンポーネントを作成するための強力なツールを提供する方法を示しています。

以上がコンテキスト認識Webコンポーネントは、あなたが思っているよりも簡単ですの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
毎週のプラットフォームニュース:Galaxy Store、Tappable Stories、CSS SubgridのWebアプリ毎週のプラットフォームニュース:Galaxy Store、Tappable Stories、CSS SubgridのWebアプリApr 14, 2025 am 11:20 AM

今週のラウンドアップ:Firefoxは錠前屋のような力を獲得し、Samsung&#039; s Galaxy StoreがプログレッシブWebアプリをサポートし始め、CSS SubgridはFirefoxで出荷しています

毎週のプラットフォームニュース:インターネットエクスプローラーモード、検索コンソールの速度レポート、通知プロンプトの制限毎週のプラットフォームニュース:インターネットエクスプローラーモード、検索コンソールの速度レポート、通知プロンプトの制限Apr 14, 2025 am 11:15 AM

今週のラウンドアップ:Internet ExplorerがEdgeに進み、Google Search Consoleが新しい速度レポートを宣伝し、FirefoxがFacebookの通知を提供します

CSSカスタムプロパティを使用したスコープのパワー(および楽しい)CSSカスタムプロパティを使用したスコープのパワー(および楽しい)Apr 14, 2025 am 11:11 AM

おそらく、CSS変数に少なくとも少し精通しているでしょう。そうでない場合は、ここに2秒の概要があります:それらは本当にカスタムプロパティと呼ばれます、あなたは設定します

私たちはプログラマーです私たちはプログラマーですApr 14, 2025 am 11:04 AM

建物のウェブサイトはプログラミングです。 HTMLとCSSの作成はプログラミングです。私はプログラマーです。ここでCSS-Tricksを読んでいる場合、あなたは&#039;

サイトから未使用のCSSをどのように削除しますか?サイトから未使用のCSSをどのように削除しますか?Apr 14, 2025 am 10:59 AM

ここに&#039;私が前もって知るのが好きなこと:これは難しい問題です。あなたがここに上陸した場合、あなたはあなたが伝えることができるツールを指し示すことを望んでいるので、あなたが&#039;

ピクチャーインピクチャーWeb APIの紹介ピクチャーインピクチャーWeb APIの紹介Apr 14, 2025 am 10:57 AM

Picture-in-Pictureは、2016年にMacos SierraをリリースしたSafariブラウザでWebに初めて登場しました。ユーザーがポップできるようになりました。

ギャツビーを使用してぼやけた効果のために画像を整理して準備する方法ギャツビーを使用してぼやけた効果のために画像を整理して準備する方法Apr 14, 2025 am 10:56 AM

Gatsbyは、画像の処理と処理の素晴らしい仕事をしています。たとえば、手動で画像の最適化で時間を節約するのに役立ちます

ああ、パディングの割合は親要素の幅に基づいていますああ、パディングの割合は親要素の幅に基づいていますApr 14, 2025 am 10:55 AM

私は今日、私の頭の中で完全に間違っていたことをパーセンテージベース(%)のパディングについて学びました!パディングの割合はに基づいているといつも思っていました

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境