検索
ホームページウェブフロントエンド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 までご連絡ください。
CSS Flexbox vsグリッド:包括的なレビューCSS Flexbox vsグリッド:包括的なレビューMay 12, 2025 am 12:01 AM

FlexBoxまたはグリッドの選択は、レイアウト要件によって異なります。1)FlexBoxは、ナビゲーションバーなどの1次元レイアウトに適しています。 2)グリッドは、雑誌のレイアウトなどの2次元レイアウトに適しています。この2つは、レイアウト効果を改善するためにプロジェクトで使用できます。

CSSファイルを含める方法:メソッドとベストプラクティスCSSファイルを含める方法:メソッドとベストプラクティスMay 11, 2025 am 12:02 AM

CSSファイルを含める最良の方法は、タグを使用してHTMLパーツに外部CSSファイルを導入することです。 1.タグを使用して、外部CSSファイルを導入します。 2。小さな調整のために、インラインCSSを使用できますが、注意して使用する必要があります。 3.大規模プロジェクトでは、@Importを介して他のCSSファイルをインポートするために、SASS以下などのCSSプリプロセッサを使用できます。 4。パフォーマンスのために、CSSファイルをマージし、CDNを使用し、CSSNANOなどのツールを使用して圧縮する必要があります。

FlexBox対グリッド:両方を学ぶべきですか?FlexBox対グリッド:両方を学ぶべきですか?May 10, 2025 am 12:01 AM

はい、Youはrelearnbothlexboxandgrid.1)FlexBoxisidealforone-Dimensional、FlexiblleayoutslikenavigationMenus.2)Gridexcelsintwo-digsignssuchasmagazinelayouts.3)Bothenhanceslaysutibulivedibulisunivedivition、floctonsulururを

軌道力学(またはCSSキーフレームアニメーションの最適化方法)軌道力学(またはCSSキーフレームアニメーションの最適化方法)May 09, 2025 am 09:57 AM

独自のコードをリファクタリングするのはどのように見えますか?ジョン・レアは、彼が書いた古いCSSアニメーションを選び、それを最適化するという思考プロセスを歩きます。

CSSアニメーション:それらを作成するのは難しいですか?CSSアニメーション:それらを作成するのは難しいですか?May 09, 2025 am 12:03 AM

cssanimationsArenotintinlentyhardbutrepracticeanderstanding ofcsspropertiesandtimingfunctions.1)

@KeyFrames CSS:最も使用されているトリック@KeyFrames CSS:最も使用されているトリックMay 08, 2025 am 12:13 AM

@keyframesispopularduetoitsversitility andpowerincreatingsmoothcssanimations.keytricksinclude:1)defingsmoothtransitionsbetweenstates、2)AnimatingMultipleProperiessimally、3)3)bendorprefixesforbrows -compativity、4)組み合わせwithjavasfo

CSSカウンター:自動番号の包括的なガイドCSSカウンター:自動番号の包括的なガイドMay 07, 2025 pm 03:45 PM

csScounterSareSareusedTomageautomaticinginginwebdesigns.1)それらは、コンテンツ、リスト、および積極的なものを使用することができます

スクロール駆動型のアニメーションを使用したモダンなスクロールシャドウスクロール駆動型のアニメーションを使用したモダンなスクロールシャドウMay 07, 2025 am 10:34 AM

特にモバイルデバイスでは、スクロールシャドウを使用することは、Chrisが以前にカバーした微妙なUXです。 Geoffは、アニメーションタイムラインプロパティを使用する新しいアプローチをカバーしました。これがさらに別の方法です。

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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、