目次
キーテイクアウト
x-tag
x-tagでカスタム要素を定義するのは簡単です。 XTAG.register関数を呼び出して、カスタム要素とその動作を定義するオブジェクトの名前を渡します。このオブジェクトには、ライフサイクルの方法、アクセサ、イベントハンドラーが含まれます。基本的な例は次のとおりです。
});
ホームページ ウェブフロントエンド CSSチュートリアル X-TAGでカスタムWebコンポーネントを構築します

X-TAGでカスタムWebコンポーネントを構築します

Feb 23, 2025 am 08:26 AM

Building Custom Web Components with X-Tag

X-TAGでカスタムWebコンポーネントを構築します

キーテイクアウト

    Microsoft-Supported JavaScriptライブラリである
  • X-Tagは、主にカスタム要素APIに焦点を当てた、迅速なWebコンポーネント開発のためのコンパクトで機能が豊富なインターフェイスを提供します。
  • X-TAGは元々Mozillaプロジェクトでしたが、現在はGoogleがポリマーフレームワークをバックする方法と同様に、Microsoftバックプロジェクトです。
  • X-TAGでカスタム要素を作成することは、XTAG.register()メソッドを使用して、完全にJavaScript駆動型です。このプロセスでは、カスタム要素のライフサイクル、アクセサ、メソッド、およびイベントを定義することが含まれます。
  • X-TAGは、ポリマーと比較してカスタム要素を実装するためのよりシンプルなAPIを提供し、セットアップを軽く柔軟に保つことを目指している開発者に適した選択肢となります。ただし、ポリマーが行う複雑な機能は提供されていません。
  • GoogleとMozillaのWebコンポーネントのソリューションの後、X-Tagライブラリの公開リリースでこのスペースに入る予定です。公式ウェブサイトでは、次のように定義しています
  • X-TAGは、MicrosoftサポートされているオープンソースのJavaScriptライブラリで、APIのW3C標準Webコンポーネントファミリをラップして、迅速なコンポーネント開発のためのコンパクトで機能が豊富なインターフェイスを提供します。 X-Tagは、すべてのWebコンポーネントAPI(カスタム要素、Shadow Dom、テンプレート、HTMLインポート)の機能フックを提供しますが、操作するにはカスタム要素サポートのみが必要です。ネイティブのカスタム要素サポートがない場合、X-TAGはGoogleのポリマーフレームワークと共有されているポリフィルのセットを使用します。

言い換えれば、X-TAGはMicrosoftに、Googleにとって何をポリマーとするかです。両方に共通する唯一のことは、サポートしていないブラウザのWebコンポーネントのサポートを可能にする基礎となるポリフィルです。

X-Tagはポリマーとどのように異なりますか?

ポリマーは、4つのWebコンポーネントテクノロジーすべて、つまりHTMLインポート、カスタム要素、Shadow Dom、およびHTMLテンプレートを単一のパッケージに組み合わせています。開発者に、カスタムWebコンポーネントを構築するための使いやすいAPIを提供します。一方、X-TAGは、カスタムWebコンポーネントを構築するためのカスタム要素APIのみを提供します。もちろん、X-TAGライブラリと組み合わせて他のWebコンポーネントAPIを使用することもできます。

X-Tag、Mozillaプロジェクトではありませんか?
はい、そうでしたが、今はもうありません。掘り出した後、X-TAGプロジェクトの元の開発者であるDaniel Buchnerが、彼が図書館を作成したときにMozillaで働いていたことを知ることができました。しかし、それ以来、彼はマイクロソフトに移り、プロジェクトを続けました。さらに、彼は元モジリアンの助けを借りて、図書館への唯一の貢献者でした。したがって、それは現在、元モジリアンによって設立されたマイクロソフト支援プロジェクトです。

x-tag

を開始します この記事では、X-Tagライブラリを使用してカスタム要素を構築して、次のマークアップを使用してGoogleマップストリートビューを埋め込みます。

カスタム要素には、場所の座標を指定するために、緯度と経度の2つの属性があります。これらの属性はオプションであるため、開発者がマークアップで定義できない場合に備えて、それぞれにデフォルト値を割り当てます。
<span><span><span><google-map</span> latitude<span>="40.7553231"</span> longitude<span>="-73.9752458"</span>></span><span><span></google-map</span>></span></span>
ログイン後にコピー
ログイン後にコピー
X-Tag JavaScriptライブラリをドキュメントのに含めることから始めましょう。

ドキュメントの

にx-tagライブラリを含めることが重要です。これは、レンダリングエンジンが。 カスタム要素の定義
<span><span><!DOCTYPE html></span>
</span><span><span><span><html</span>></span>
</span>  <span><span><span><head</span>></span>
</span>    <span><!-- X-Tag library including the polyfill -->
</span>    <span><span><span><script</span> src<span>="https://rawgit.com/x-tag/core/master/dist/x-tag-core.min.js"</span>></span><span><span></script</span>></span>
</span>  <span><span><span></head</span>></span>
</span>  <span><span><span><body</span>></span>
</span>    <span><!-- Custom element markup will appear here -->
</span>    
    <span><span><span><script</span>></span><span>
</span></span><span><span>      <span><!-- The behavior of the custom element will be defined here -->
</span></span></span><span><span>    </span><span><span></script</span>></span>
</span>  <span><span><span></body</span>></span>
</span><span><span><span></html</span>></span></span>
ログイン後にコピー
ログイン後にコピー

ポリマーとは異なり、X-TAGを使用してカスタム要素を作成するプロセスは完全にJavaScript駆動型です。 X-TAGライブラリは、要素のカスタム動作を定義するための便利な方法、コールバック、およびプロパティを提供します。 X-TAGでカスタム要素を作成するための典型的なスケルトンは、次のようになります。

Register() - これはライブラリで最も重要な方法です。カスタム要素の名前を最初の引数として受け入れ、その後にオブジェクト定義が続きます。名前が示すように、これはDOMにカスタム要素を登録する責任があります。

コンテンツ - 非常に頻繁に、カスタム要素には構造またはプレゼンテーションに追加のマークアップが必要になる場合があります。これは、HTML文字列またはマルチラインコメント文字列を受け入れて、マークアップをDOMに挿入します。

ライフサイクル - これには、カスタム要素のライフサイクルのさまざまな段階をターゲットにするように設計された便利なコールバックメソッドが含まれています。

アクセサーズ - これは、オブジェクト属性、セッター、およびゲッターにアクセスするための一般的なインターフェイスを提供し、対応するHTML属性にリンクします。属性がゲッター/セッターにリンクされている場合、それらの状態は常に同期し続けます。
xtag<span>.register('google-map', {
</span>
  <span>content: '',
</span>
  <span>lifecycle: {
</span>    <span>created  : function(){ 
</span>      <span>/* Called when the custom element is created */ 
</span>    <span>},
</span>    <span>inserted : function(){ 
</span>      <span>/* Called when the custom element is inserted into the DOM */ 
</span>    <span>},
</span>    <span>removed  : function(){ 
</span>      <span>/* Called when the custom element is removed from the DOM */ 
</span>    <span>},
</span>    <span>attributeChanged: function(attrName<span>, oldValue, newValue</span>){
</span>      <span>/* Called when the attribute of the custom element is changed */
</span>    <span>}
</span>  <span>},
</span>
  <span>accessors : {},
</span>  <span>methods   : {},
</span>  <span>events    : {}
</span><span>});</span>
ログイン後にコピー
ログイン後にコピー
メソッド - カスタム要素には、目的の機能を提供するために、独自の独自の方法の一部が必要になる可能性があります。メソッドオブジェクトをトップレベルのxtag.register()定義オブジェクトに追加し、その中にすべてのユーザー定義のメソッドを含めるだけです。
    イベント - これは、イベントをカスタム要素に添付する責任があります。このオブジェクトのキーは、タップ、フォーカスなどのようなカスタム要素に添付したいイベントの名前です
  • 基本的なアイデアは、IFRAMEを使用してGoogleマップを埋め込み、次の形式でSRC URLを指定することです。
  • API_KEYを取得するには、ここで説明する手順に従ってください。 API_KEYを作成したら、ライフサイクルオブジェクトの作成されたコールバックメソッド内にIFRAMEを作成し、上記の形式でSRCプロパティを指定します。
    <span><span><span><google-map</span> latitude<span>="40.7553231"</span> longitude<span>="-73.9752458"</span>></span><span><span></google-map</span>></span></span>
    ログイン後にコピー
    ログイン後にコピー

    上記のコードは機能しますが、iframe.srcのハードコード化された座標値を取り除き、代わりにカスタム要素属性から値を直接調整する必要があります。これを行うには、属性名がキーを形成するアクセサーズオブジェクトを使用します。属性を宣言することにより、それらをHTML属性にリンクします:{}。

    <span><span><!DOCTYPE html></span>
    </span><span><span><span><html</span>></span>
    </span>  <span><span><span><head</span>></span>
    </span>    <span><!-- X-Tag library including the polyfill -->
    </span>    <span><span><span><script</span> src<span>="https://rawgit.com/x-tag/core/master/dist/x-tag-core.min.js"</span>></span><span><span></script</span>></span>
    </span>  <span><span><span></head</span>></span>
    </span>  <span><span><span><body</span>></span>
    </span>    <span><!-- Custom element markup will appear here -->
    </span>    
        <span><span><span><script</span>></span><span>
    </span></span><span><span>      <span><!-- The behavior of the custom element will be defined here -->
    </span></span></span><span><span>    </span><span><span></script</span>></span>
    </span>  <span><span><span></body</span>></span>
    </span><span><span><span></html</span>></span></span>
    ログイン後にコピー
    ログイン後にコピー

    SRC URLを指定しながら、これらの変数を直接使用できます。

    xtag<span>.register('google-map', {
    </span>
      <span>content: '',
    </span>
      <span>lifecycle: {
    </span>    <span>created  : function(){ 
    </span>      <span>/* Called when the custom element is created */ 
    </span>    <span>},
    </span>    <span>inserted : function(){ 
    </span>      <span>/* Called when the custom element is inserted into the DOM */ 
    </span>    <span>},
    </span>    <span>removed  : function(){ 
    </span>      <span>/* Called when the custom element is removed from the DOM */ 
    </span>    <span>},
    </span>    <span>attributeChanged: function(attrName<span>, oldValue, newValue</span>){
    </span>      <span>/* Called when the attribute of the custom element is changed */
    </span>    <span>}
    </span>  <span>},
    </span>
      <span>accessors : {},
    </span>  <span>methods   : {},
    </span>  <span>events    : {}
    </span><span>});</span>
    ログイン後にコピー
    ログイン後にコピー
    仕上げの仕上げの適用

    カスタム要素のスタイリングは、他のHTMLタグのスタイリングに似ています。クラス、ID、および属性セレクターは、カスタム要素で期待どおりに機能します。たとえば、新しく作成されたカスタム要素にボックスシャドウとボーダーラジウスを追加します。

    カスタム要素の使用は、次のマークアップをに含めるのと同じくらい簡単です。
    https://www.google.com/maps/embed/v1/streetview?key=<span><span><span><API_KEY</span>></span>&location=<span><span><LATITUDE</span>></span>,<span><span><LONGITUDE</span>></span></span>
    ログイン後にコピー

    最終結果は、以下のCodepenに表示されます:

    // Insert your API key here var API_KEY = ; xtag.register('google-map', { lifecycle: { created: function() { var iframe = document.createElement('iframe'); iframe.width = 600; iframe.height = 600; iframe.frameBorder = 0; iframe.src = 'https://www.google.com/maps/embed/v1/streetview?key=' + API_KEY + '&location=40.7553231,35.3434'; this.appendChild(iframe); } } });Webコンポーネントのブラウザサポートは少し大ざっぱですが、ポリフィルを使用してX-Tagライブラリを使用するデモは、IE9以降を含むすべての最新のブラウザで動作するはずです。

    最終的な考え

    ポリマーと比較して、X-TAGは、主にポリマーが持っている複雑な特徴がないため、カスタム要素を理解および実装するためのはるかにシンプルなAPIを提供します。セットアップを軽くて柔軟に保つつもりであり、他のWebコンポーネントAPIに適切なユースケースがない場合、X-Tagは確かにジョブの正しい候補者であるように見えます。 x-tag

    を使用してカスタムWebコンポーネントの構築に関するよくある質問(FAQ) X-TAGとは何ですか?なぜそれがWeb開発において重要なのですか?

    X-TAGは、カスタムの再利用可能なHTML要素の作成を簡素化する小さなJavaScriptライブラリです。これは、Shadow Dom、HTMLテンプレート、カスタム要素も含まれるTechnologiesのWebコンポーネントスイートの一部です。 X-TAGは、開発者が独自のHTML要素を作成し、コードをカプセル化し、コードベースを清潔で保守可能に保つことができるため、Web開発において重要です。また、開発プロセスを大幅にスピードアップできるコードの再利用も促進します。他のJavaScriptライブラリまたはフレームワークでX-Tagを使用できますか?

    はい、X-TagはJavaScriptライブラリまたはフレームワークで使用するように設計されています。制限や特定のアーキテクチャパターンを課すことはないため、既存のプロジェクトに簡単に統合できます。 jQuery、React、Angular、またはvue.jsを使用している場合でも、X-Tagを使用して、アプリケーション全体で再利用できるカスタム要素を作成できます。タグ?

    x-tagでカスタム要素を定義するのは簡単です。 XTAG.register関数を呼び出して、カスタム要素とその動作を定義するオブジェクトの名前を渡します。このオブジェクトには、ライフサイクルの方法、アクセサ、イベントハンドラーが含まれます。基本的な例は次のとおりです。

    xtag.register( 'my-element'、{
    lifecycle:{ created:function(){
    this.textcontent = 'hello、world!' ;
    }
    }
    })
    ライフサイクル方法は、カスタム要素の寿命のさまざまな段階で呼び出される特別な方法です。 X-Tagは、作成、挿入、削除、および帰属の4つのライフサイクル方法をサポートしています。これらの方法により、要素が作成され、DOMに追加され、DOMから削除されたとき、またはその属性のいずれかが変更されたときに特定のアクションを実行できます。 >
    X-Tagは、カスタム要素のイベントを処理する簡単な方法を提供します。要素を登録するときに、イベントオブジェクトのイベントハンドラーを定義できます。たとえば、クリックイベントを処理するには、次のようなことを行います。 🎜> console.log( 'element clicked!');
    }

    }

    });

    x-tagを使用してシャドウdomを作成できますか要素?

    はい、x-tagはシャドウドム要素の作成をサポートします。これにより、要素のスタイルとマークアップをカプセル化して、ドキュメントの他の部分とは別に保持できます。シャドウルートを作成するには、this.createshadowroot()メソッドを要素の作成したライフサイクルメソッド内に使用できます。他のHTML要素と同様に、CSSを使用します。要素がShadow DOMを使用している場合、Shadow Rootに

    執筆時点では、X-TAGは積極的に維持されていません。最後のリリースは2017年でした。ただし、ライブラリは安定しており、プロジェクトで使用できます。問題が発生したり、新機能が必要な場合は、自分で実装するか、別のライブラリの使用を検討する必要がある場合があります。

以上がX-TAGでカスタムWebコンポーネントを構築しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

静的フォームプロバイダーの比較 静的フォームプロバイダーの比較 Apr 16, 2025 am 11:20 AM

ここでは、「静的フォームプロバイダー」という用語を埋めてみましょう。あなたはあなたのHTMLを持ってきます

SASSをより速くするための概念の証明 SASSをより速くするための概念の証明 Apr 16, 2025 am 10:38 AM

新しいプロジェクトの開始時に、SASSコンピレーションは瞬く間に起こります。これは、特にbrowsersyncとペアになっている場合は素晴らしい気分です。

毎週のプラットフォームニュース:HTMLロード属性、主なARIA仕様、およびIFRAMEからShadowDOMへの移動 毎週のプラットフォームニュース:HTMLロード属性、主なARIA仕様、およびIFRAMEからShadowDOMへの移動 Apr 17, 2025 am 10:55 AM

今週のプラットフォームニュースのラウンドアップで、Chromeは、Web開発者のロード、アクセシビリティ仕様、およびBBCの動きのための新しい属性を導入します

HTMLダイアログ要素を使用したいくつかの実践 HTMLダイアログ要素を使用したいくつかの実践 Apr 16, 2025 am 11:33 AM

これは私が初めてHTML要素を見ていることです。私はしばらくの間それを知っていましたが、まだスピンしていませんでした。かなりクールです

ペーパーフォーム ペーパーフォーム Apr 16, 2025 am 11:24 AM

購入またはビルドは、テクノロジーの古典的な議論です。自分で物を構築することは、あなたのクレジットカードの請求書にはラインアイテムがないため、安価に感じるかもしれませんが

毎週のプラットフォームニュース:テキスト間隔のブックマークレット、トップレベルの待望、新しいアンプロードインジケーター 毎週のプラットフォームニュース:テキスト間隔のブックマークレット、トップレベルの待望、新しいアンプロードインジケーター Apr 17, 2025 am 11:26 AM

今週のラウンドアップ、タイポグラフィを検査するための便利なブックマークレットである。

「ポッドキャストにサブスクライブ」リンクはどこにすべきですか? 「ポッドキャストにサブスクライブ」リンクはどこにすべきですか? Apr 16, 2025 pm 12:04 PM

しばらくの間、iTunesはポッドキャストの大きな犬だったので、「ポッドキャストにサブスクライブ」をリンクした場合:

独自の非JavaScriptベースの分析をホストするためのオプション 独自の非JavaScriptベースの分析をホストするためのオプション Apr 15, 2025 am 11:09 AM

サイトの訪問者と使用データを追跡するのに役立つ分析プラットフォームがたくさんあります。おそらく、特にGoogleアナリティクスが広く使用されています

See all articles