模板组件 - 使用 querySelector() 到阴影 dom 内的 select 元素
Stencil Component - use querySelector() to select element within the shadow dom
我正在创建一个包装我一直在使用的 canvas 库的组件,以使其在我的一些应用程序和范围之间可移植 functionality/style 以在应用程序之间保持一致.
问题是,部分库要求我将 canvas 元素作为 class 的参数传递。
是否可以 select 模板内部的元素 class?到目前为止,我设法完成它的唯一方法是关闭阴影 DOM,这有点违背了目的。
经过大量搜索(询问之前)和很少搜索(询问之后),我找到了答案。显然 refs 在这里可用。
<canvas ref={(el) => {this.canvas = el}}>
</canvas>
要访问 Shadow DOM 中的元素,您必须使用 shadowRoot
属性:
@Element() el;
// ...
const canvas = this.el.shadowRoot.querySelector('canvas');
我正在创建一个包装我一直在使用的 canvas 库的组件,以使其在我的一些应用程序和范围之间可移植 functionality/style 以在应用程序之间保持一致.
问题是,部分库要求我将 canvas 元素作为 class 的参数传递。
是否可以 select 模板内部的元素 class?到目前为止,我设法完成它的唯一方法是关闭阴影 DOM,这有点违背了目的。
经过大量搜索(询问之前)和很少搜索(询问之后),我找到了答案。显然 refs 在这里可用。
<canvas ref={(el) => {this.canvas = el}}>
</canvas>
要访问 Shadow DOM 中的元素,您必须使用 shadowRoot
属性:
@Element() el;
// ...
const canvas = this.el.shadowRoot.querySelector('canvas');