言い換えれば、X-TAGはMicrosoftに、Googleにとって何をポリマーとするかです。両方に共通する唯一のことは、サポートしていないブラウザのWebコンポーネントのサポートを可能にする基礎となるポリフィルです。
X-Tagはポリマーとどのように異なりますか?はい、そうでしたが、今はもうありません。掘り出した後、X-TAGプロジェクトの元の開発者であるDaniel Buchnerが、彼が図書館を作成したときにMozillaで働いていたことを知ることができました。しかし、それ以来、彼はマイクロソフトに移り、プロジェクトを続けました。さらに、彼は元モジリアンの助けを借りて、図書館への唯一の貢献者でした。したがって、それは現在、元モジリアンによって設立されたマイクロソフト支援プロジェクトです。ポリマーは、4つのWebコンポーネントテクノロジーすべて、つまりHTMLインポート、カスタム要素、Shadow Dom、およびHTMLテンプレートを単一のパッケージに組み合わせています。開発者に、カスタムWebコンポーネントを構築するための使いやすいAPIを提供します。一方、X-TAGは、カスタムWebコンポーネントを構築するためのカスタム要素APIのみを提供します。もちろん、X-TAGライブラリと組み合わせて他のWebコンポーネントAPIを使用することもできます。
X-Tag、Mozillaプロジェクトではありませんか?
<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ライブラリを含めることが重要です。これは、レンダリングエンジンが。 カスタム要素の定義<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でカスタム要素を作成するための典型的なスケルトンは、次のようになります。
ライフサイクル - これには、カスタム要素のライフサイクルのさまざまな段階をターゲットにするように設計された便利なコールバックメソッドが含まれています。
アクセサーズ - これは、オブジェクト属性、セッター、およびゲッターにアクセスするための一般的なインターフェイスを提供し、対応する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>
<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>
カスタム要素の使用は、次のマークアップをに含めるのと同じくらい簡単です。
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に表示されます:
最終的な考え
ポリマーと比較して、X-TAGは、主にポリマーが持っている複雑な特徴がないため、カスタム要素を理解および実装するためのはるかにシンプルなAPIを提供します。セットアップを軽くて柔軟に保つつもりであり、他のWebコンポーネントAPIに適切なユースケースがない場合、X-Tagは確かにジョブの正しい候補者であるように見えます。 x-tagを使用してカスタムWebコンポーネントの構築に関するよくある質問(FAQ)
はい、X-TagはJavaScriptライブラリまたはフレームワークで使用するように設計されています。制限や特定のアーキテクチャパターンを課すことはないため、既存のプロジェクトに簡単に統合できます。 jQuery、React、Angular、またはvue.jsを使用している場合でも、X-Tagを使用して、アプリケーション全体で再利用できるカスタム要素を作成できます。タグ?
xtag.register( 'my-element'、{
lifecycle:{
this.textcontent = 'hello、world!' ;
}
}
})
ライフサイクル方法は、カスタム要素の寿命のさまざまな段階で呼び出される特別な方法です。 X-Tagは、作成、挿入、削除、および帰属の4つのライフサイクル方法をサポートしています。これらの方法により、要素が作成され、DOMに追加され、DOMから削除されたとき、またはその属性のいずれかが変更されたときに特定のアクションを実行できます。 >
X-Tagは、カスタム要素のイベントを処理する簡単な方法を提供します。要素を登録するときに、イベントオブジェクトのイベントハンドラーを定義できます。たとえば、クリックイベントを処理するには、次のようなことを行います。 🎜> console.log( 'element clicked!');
}
x-tagを使用してシャドウdomを作成できますか要素?
執筆時点では、X-TAGは積極的に維持されていません。最後のリリースは2017年でした。ただし、ライブラリは安定しており、プロジェクトで使用できます。問題が発生したり、新機能が必要な場合は、自分で実装するか、別のライブラリの使用を検討する必要がある場合があります。
以上がX-TAGでカスタムWebコンポーネントを構築しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。