如果我理解正确的话,创建一个 web 组件实例可以概括为创建一个 shadow root 并将标记复制到其中,例如从模板中复制:
var Template = document.querySelector('#myTemplate');
var TemplateClone = document.importNode(Template.content,true);
TargetElement.appendChild(TemplateClone);
当然,如果模板中包含style标签内的css规则,它们也会被复制。因此我们可以拥有属于Web组件内部标记的封闭式样式。
问题:
- 如果我创建了大量相同的 Web 组件实例,由于样式只是被复制而不是被重用,这是否会对性能产生影响?
- 是否有一种方法可以在多个相同 Web 组件实例之间共享样式节点?