定义 Polymer Web 组件而不导入它们

Posted

技术标签:

【中文标题】定义 Polymer Web 组件而不导入它们【英文标题】:Defining Polymer web components without importing them 【发布时间】:2018-10-22 10:19:58 【问题描述】:

有没有办法直接在 html 文件中为使用它们的页面定义 Polymer Web 组件,而不是通过链接标签导入它们?

这似乎比必须请求页面然后发送对 Web 组件 html 文件的请求更快。到目前为止,我看到的所有指南都仅参考通过 <link rel="import" href="/my_component.html" /> 导入。

【问题讨论】:

【参考方案1】:

您可以使用 Polymer Bundler 减少将 Web 组件和依赖项连接到一个文件中的网络请求数量。您可以找到更多信息here。

【讨论】:

【参考方案2】:

正如另一个答案中所建议的,这似乎是一种更好的方法,可以在开发时更多地担心文件/元素的清晰结构,并让构建脚本担心类似的事情。

但是由于捆绑器基本上会做同样的事情,定义文件中的所有元素,这显然是可能的。所以只回答最初的问题,你可以看到一个样本here。

所以你只需要使用多个dom-module 标签,例如:

<dom-module id="my-element">
...
</dom-module>
<dom-module id="my-inner-element">
...
</dom-module>

并多次调用customElements.define

customElements.define(MyElement.is, MyElement);
customElements.define(MyInnerElement.is, MyInnerElement);

但我肯定会建议不要将整个应用程序编写在一个文件中。

【讨论】:

以上是关于定义 Polymer Web 组件而不导入它们的主要内容,如果未能解决你的问题,请参考以下文章

是否可以将模块导入 Polymer 组件?

Polymer WebComponent中的Momentjs - 全局未定义

不同框架中的 Web 组件

如何防止外部 CSS 覆盖 Web 组件样式

Polymer Starter Kit vs Polymer App Toolbox

使用Polymer 2.0的简单web组件:从下拉列表更新值不起作用