Polymer 和 Web Components polyfill 之间的区别?

Posted

技术标签:

【中文标题】Polymer 和 Web Components polyfill 之间的区别?【英文标题】:Difference between Polymer and Web Components polyfill? 【发布时间】:2017-03-06 22:47:33 【问题描述】:

我是一名新开发人员,我很难找到任何能明确区分 Polyfill 和 Polymer 的内容。

我相当确定 Polyfill 是/或使用 platform.js webcomponents.js 的一部分它们还没有得到完全支持。 Polymer 使用某种模板,例如 Angular 的指令,但它似乎是未来 Web 的更永久固定装置。

谁能提供更清晰的定义或链接来阐明两者之间的区别?

【问题讨论】:

旁注:platform.js 被 webcomponents.js polyfill 取代,并且仅在 Polymer 1.0 之前使用。在您的 Polymer 项目中,您现在应该使用 webcomponents.js(或其精简版),直到所有浏览器都支持完整的 Web 组件规范。 卡登给出了一个很好的答案,你应该选择它作为正确答案。 【参考方案1】:

Polymer 是否基于 polyfill?

“Polymer 在标准 Web 组件 API 上添加了一点糖,让您更轻松 [...]。” — Polymer Project homepage

“Polymer 支持所有主要的常青浏览器结合使用时,webcomponents.js 支持 IE 11+。” — A Quick Introduction To Polymer (重点由我添加)

这意味着 Polymer 不基于,即不依赖于 polyfill (webcomponents.js)。相反,它似乎是直接构建在 Web 组件标准之上的。

只有当您的目标浏览器没有实现这些标准时,您才需要 polyfill 来弥补这一点。

Polymer 和 polyfill 的主要区别:

“有一些围绕 Web 组件的包装器 […]。Polymer 是一个类似的包装器,在顶部添加了一些额外的好东西。 […] 使用 Polymer 的优点之一是它具有内置数据绑定模型(如 Angular),无需任何其他库即可制作完整的应用程序。” — ibid (重点由我添加)

这意味着,虽然 Webcomponents.js(polyfill)是缺失功能的替代品,但 Polymer 是围绕它的薄包装器(添加了一些功能)。

【讨论】:

以上是关于Polymer 和 Web Components polyfill 之间的区别?的主要内容,如果未能解决你的问题,请参考以下文章

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

在polymer.json中有什么额外的依赖,“!”是什么意思?

Polymer.js 纸制标签样式

material.io和Polymer.js之间的关系

App Engine + Polymer.dart 带有 hashbang 的单页 Web 应用路由

Polymer Starter Kit vs Polymer App Toolbox