【问题标题】:Polymer is a framework instead of a library. How can I modularly use web components?Polymer 是一个框架而不是一个库。如何模块化使用 Web 组件?
【发布时间】:2016-09-11 01:06:42
【问题描述】:

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

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

我认识到这是一个正在进行的项目,大多数浏览器的供应商仍在开发 Web 组件需求,但我目前的结论是 Polymer 正在成为一个新框架,因为没有 Polymer 我无法使用他们的元素库以及与 Angular 2 的框架一起使用还不能很好地工作。

这是一种以真正模块化的方式使用 Web 组件的方式,而不需要 Polymer 建议的所有样板吗?

【问题讨论】:

  • 当然可以使用原生 API 并编写自己的库。除此之外,这个问题太宽泛,无法期待一个合理的答案
  • 进一步阅读 Web 组件:webcomponents.org
  • 您可能想在一个单独的问题中询问您的 Angular 问题。我没有尝试过,但是任何 Web 组件都应该可以在 Angular 2 上正常工作。Polymer 也不例外。

标签: javascript html polymer web-component


【解决方案1】:

TL;DR;

Polymer 并不仅仅因为它需要使用用它构建的 Web 组件这一事实而破坏了模块化。它只是一个库,虽然固执己见,但用于实现自定义元素。

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

长读

Web 组件的理念是无论你使用什么框架,都可以将 Web 模块化

从某种意义上说,是的。尽管 Web Components 的目标是真正模块化 DOM。对于通用模块化,有 ES6 模块 IMO。

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

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

它像任何其他依赖项一样,不应该阻止您将 Polymer(或 Bosonic,或 x-tag,或 basic-web-components)与任何其他 Web 框架一起使用。

不仅如此,我应该能够从元素目录中下载元素并使用它无需聚合物库,只需使用 webcomponents.js。

你在哪里读到的?另外,组件工作需要polymer.html 是否有问题?您可能会在其他 Web 组件库中得到相同的结果。

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

我认为有必要澄清一下。供应商实施了 Web 组件规范,在尚未准备好的地方,webcomponents.js 填补了空白。然而,正如我在上面所写的,Polymer 有点多,因为它给你的不仅仅是纯粹的规格。

这是一种在没有 Polymer 建议的所有样板的情况下以真正的模块化方式使用 Web 组件的方法吗?

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

【讨论】:

    猜你喜欢
    • 2014-09-01
    • 2016-12-04
    • 1970-01-01
    • 2012-01-05
    • 1970-01-01
    • 2019-12-27
    • 2015-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多