【发布时间】:2014-11-11 21:03:22
【问题描述】:
Polymer dist/ 文件夹有一个 html 文件 https://github.com/Polymer/polymer/tree/master/dist,带有一个 HTML 导入和一个脚本标签。大多数聚合物元素甚至没有 dist 文件夹。提供像 polymer.js 这样的单个分发包文件并为那里可用的每个聚合物元素做同样的事情不是一个好习惯吗?
这种方法有一些明显的优势:
1. Minimum http requests to get the polymer core or a polymer element.
2. Easy to use for the clients, just include the required element.
示例:依赖于其他共享元素的元素,
- shared-element: /webcomponents/font-roboto/roboto.js
- custom-element1: uses shared-element
- custom-element2: uses shared-element
使用 custom-element1 和 custom-element2 的应用下载 /webcomponents/font-roboto/roboto.js 一个 http 请求只能执行一次。
<script src="../webcomponents/webcomponentsjs/webcomponents.js"></script>
<script src="../webcomponents/custom-element1/custom-element1.js"></script>
<script src="../webcomponents/custom-element2/custom-element2.js"></script>
PS:上面的 custom-element1.js 和 custom-element1.html 做的事情一样,期望以编程方式加载和访问组件很方便。
我想听听聚合物团队或其他聚合物开发人员/用户关于他们为解决此问题而遵循的最佳实践。
【问题讨论】:
-
不确定你的意思。您只需导入 html 文件。此外,html 导入会被删除并处理一次。所以如果你在你的应用中包含roboto (
<link rel="import" href="bower_components/font-roboto/roboto.html">) 作为几个自定义元素,它只会被加载一次(你可以在网络面板中检查它) -
@arbitter 很高兴了解重复数据删除和一次性加载。关于为什么 Polymer 元素不只在 dist/ 文件夹中分发所需的组件代码的后续问题?
-
+1 @jdepypere 尚未验证,但看起来每个组件至少有一个 HTTP 请求。显然,这对于具有数十个组件的真实应用程序来说是不利的
-
@UAvalos 你是绝对正确的,而 Vulcanize 肯定是要走的路!
标签: polymer