AngularJS 2.0 一个关键的特性就是支持 Web Components。而 Google 的 Polymer 就是一个 Web Component 技术的实现,同时也是一个基于 Web Components 的框架。那么 AngularJS 和 Polymer 之间到底角色上有何异同呢?
AngularJS 2.0 团队成员 Rob Eisenberg 在之前 解释 了 AngularJS 和 Polymer 之间的关系:
- “Angular 是真正围绕着优化应用开发而设计的,包括 DI、路由、模板、修饰符指令等很多高级的数据绑定”
- “而 Polymer 是为自定义元素开发而设计的,因此有着基础的模板和绑定以及很强的组件模型”
因此 Eisenberg 希望用户通过 Polymer 来实现跨框架的 UI 组件和纯 Web 组件。而应用的组件应该使用 AngularJS 构建。
两者有竞争关系吗?
在 Google I/O 2014 大会上,Google 发布了 Paper Elements, 这是符合 Material Design 设计规范的自定义元素,这些元素就是使用 Polymer 实现的 Web Components。这些组件在 AngularJS 上很有用,特别是 2.0 版本,因此两者并没有竞争关系。也就是说,Polymer 可以帮助 AngularJS 扩展在 Web Component 上的实现。不过,作为一个框架,Polymer 在未来或多或少会跟 Angular 有一定的重叠。