正しく理解すれば、ウェブコンポーネントのインスタンスを作成することは、シャドウルートを作成し、マークアップをコピーすることで合計することができます。「同じタイプのウェブコンポーネント間でスタイルを共有する」
var Template = document.querySelector('#myTemplate');
var TemplateClone = document.importNode(Template.content,true);
TargetElement.appendChild(TemplateClone);
もちろん、テンプレートにCSSタグがスタイルタグに含まれている場合は、それらもコピーされます。したがって、Webコンポーネントの内部マークアップに属するスコープのあるスタイルを持つことができます。
質問:私は非常に同じWebコンポーネントの インスタンスのトンを作成するときに、スタイルがちょうど コピーされ、再利用されていないよう
- それは、任意のパフォーマンスに影響がありますか?
- 同じWebコンポーネントの の複数のインスタンスにわたってスタイルノードを共有する方法はありますか?
マークアップにはまだ違いがありますが、外部のURLからロードされているのではないですか?もちろんキャッシュされていますか? – Alfi
はい、いいえ、マークアップは重複しませんが、要素のDOMに 'stylesheet'オブジェクトが追加されます。いずれにせよ、DOMの各要素は個別にスタイルされているため、スタイルや要素が多くなればなるほど、スタイルが共有されているかどうかにかかわらず、スタイルプロセスは長くなります。レプリケートされたスタイルシートのオーバーヘッドはわかりませんが、それほど多すぎないかもしれません。そして、それはユースケース(そしてCSSエンジンの実装で) – Supersharp