Polymer元素 vs Angular指令

28 浏览
0 Comments

Polymer元素 vs Angular指令

我知道之前已经有人问过这个问题,尤其是这里

然而,答案对我来说相当抽象,我在实践中感到相当困惑。

它们似乎的答案是:

Polymer(更确切地说,Shadow DOM)创造了一种不仅可以组成 HTML 的能力,而且可以封装它们。这是一种全新的能力,可以与任何其他模板系统或框架一起使用,以增强它们的能力。

这并没有告诉我太多,就我所知道的,AngularJS 指令在实践中也做类似的事情,虽然 polymer 元素可能在性能方面更加高效。我相信,“封装”在这个上下文中有一些深层含义,我还没有理解。

假设我正在开发一个 AngularJS Web 应用程序。何时、如何以及为什么会使用 polymer 元素而不是 angular 指令?

如果使用 polymer 元素,它们是用来代替 angular 指令的吗?如果是,那么什么情况下会使用其中之一?还是说 angular 指令是基于 polymer 元素实现的?

admin 更改状态以发布 2023年5月24日
0
0 Comments

你其实在问两件不同的事情, "构建组件与使用组件之间有什么区别?"

使用组件

在可预见的未来,你会同时使用两者。无论一个Web组件是用什么技术/库构建的或者哪个供应商制作的,只需要bower install (或类似) 并使用对你的应用程序有意义的组件即可。

重要的是一切都将是DOM,这意味着元素可以无缝地一起工作。互操作性很棒。这是一个Angular指令的POC,它是与Polymer元素数据绑定的:http://ebidel.github.io/polymer-experiments/polymer-and-angular/together/


构建组件

目前构建元素是一种不同的故事。 Polymer的方法是以Web组件为中心。Angular是在Web组件之前构建的,所以情况有些不同。

  • Angular指令是构建自定义标记/组件的一种方法。 Polymer和Custom元素规范是基于标准的方法。

  • 你如何构建Polymer元素是极为声明式的。Angular指令大多在JS中定义(具有引用模板文件的能力)。

  • 由于Polymer元素使用Custom元素,所以继承很简单。我不确定Angular指令的继承情况。

  • Polymer元素使用Shadow DOM。这使它们拥有DOM和CSS的封装。在元素中定义的样式不会泄漏出去,页面的样式也不会泄漏进来。我可能错了,但是Angular指令没有任何关于样式封装的概念。这是一个艰难的问题,Shadow DOM规范免费赠送给我们的。

  • 数据绑定概念相似

Angular指令是否将按照Polymer元素的方式实现?

  • 最终,Angular将采用一些不断发展的Web组件标准。这对所有框架都是如此。Ember刚刚公布了 他们2014的计划,其中包括Web组件。例如,Angular.dart已经为指令使用Shadow DOM。

  • Polymer元素(custom元素)默认可以与其他自定义元素进行互操作。这是因为它们只是DOM。DOM元素可以很好地一起工作:)

希望对你有所帮助!

0