Polymer是一个框架而不是库。如何模块化地使用Web组件?

时间:2016-05-15 01:37:20

标签: javascript html polymer web-component

Web组件的概念是模块化Web,无论您使用什么框架。

Polymer项目承诺创建Web组件的可能性,而不是框架,因此应该可以将它与任何框架一起使用。更重要的是,我应该能够从element catalog下载元素,并在没有聚合物库的情况下使用它,只需使用webcomponents.js。

我认识到这是一个正在进行的项目,并且大多数浏览器的供应商仍在开发Web组件要求,但到目前为止我得出的结论是,Polymer正在成为一个新的框架,因为我不能在没有Polymer的情况下使用它们的元素库和使用框架作为Angular 2还没有运行良好。

这是一种以真正的模块化方式使用Web组件的方法,而没有Polymer提出的所有样板吗?

1 个答案:

答案 0 :(得分:5)

TL; DR;

Polymer不会因为需要使用使用它构建的Web组件而破坏模块性。它只是一个用来实现自定义元素的图书馆。

然而,这些元素仍然是独立的模块。所有聚合物都应该隐藏在组件内部而不会干扰外部。

长读

  

Web组件的概念是模块化Web,无论您使用什么框架

从某种意义上说,是的。虽然Web Components的目标是真正模块化DOM。对于一般模块化,有ES6模块IMO。

  

Polymer项目承诺创建Web组件的可能性,而不是框架,因此应该可以将它与任何框架一起使用。

我不确定您对聚合物和Web组件的期望。 Web组件的模块化来自这样一个事实,即在使用时,它们只是DOM树的普通部分。任何现有的库都可以使用它。任何Web组件都只是一个HTML元素,并且公开了一个统一的界面:属性和事件。 Polymer所做的是在其上添加一些细节,以便您可以享受data-bindingsimpler custom element declarationssimpler events APIstyling polyfillshady DOM等等。

这是一种依赖性,不应该阻止您将Polymer(或Bosonicx-tagbasic-web-components)与任何其他Web框架一起使用。

  

更重要的是,我应该能够从元素目录中下载元素并使用而不使用聚合物库,只需使用webcomponents.js。

你在哪里读到的?此外,组件工作需要polymer.html是一个问题吗?您可以使用其他Web Components库。

  

我认识到这是一个正在进行的项目,大多数浏览器供应商仍在开发Web组件要求。

我认为需要澄清。供应商实现了Web组件规范,并且没有准备好,webcomponents.js填补了空白。正如我上面写的那样,Polymer更多一点,因为它给你的不仅仅是纯粹的规格。

  

这是一种以真正的模块化方式使用Web组件的方法,而没有Polymer提出的所有样板吗?

不确定您所引用的bolierplate是什么,但是,您可以在plain javascript(或minimal dependencies fashion)中编写Web组件,但是您将丢失Web组件提供的一些糖您。这就像争辩说不应该使用jQuery,因为它所做的一切都可以在没有它的情况下完成。