Polymer元素和AngularJS指令有什么区别?
在Polymer
Getting Started页面上,我们看到了一个聚合物的实例:
<html> <head> <!-- 1. Shim missing platform features --> <script src="polymer-all/platform/platform.js"></script> <!-- 2. Load a component --> <link rel="import" href="x-foo.html"> </head> <body> <!-- 3. Declare the component by its tag. --> <x-foo></x-foo> </body> </html> 您会注意到的是由platform.js和x-foo.html定义。 看起来这相当于AngularJS中的一个指令模块: angular.module('xfoo',[]) .controller('X-Foo',['$scope',function($scope) { $scope.text = 'hey hey!'; }) .directive('x-foo',function() { return { restrict: 'EA',replace: true,controller: 'X-Foo',templateUrl: '/views/x-foo.html',link: function(scope,controller) { } }; }); >两者之间有什么区别?
你不是第一个问这个问题:)让我澄清一些事情,然后才得到你的问题。
> Polymer的webcomponents.js是一个库,其中包含多个Web应用程序下的各种W3C API的polyfills。这些是: >自定义元素 文档中的左侧导航(polymer-project.org)具有所有这些“平台技术”的页面。每个页面都有一个指向各个polyfill的指针。 至问题! Angular和Polymer之间有什么区别? 我们在我们的Q&A video中介绍了一些。通常,Polymer是一个旨在使用(并展示如何使用)Web组件的库。它的基础是自定义元素(例如,您构建的所有内容都是一个Web组件),并随着Web的发展而演变。为此,我们只支持最新版本的现代浏览器。 我将使用这个图像来描述Polymer的整个架构堆栈: 红色层:我们通过一组polyfill获得未来的web。请记住,随着浏览器采用新的API,这些库会消失。 黄色层:在一些糖与polymer.js。这一层是我们对如何使用规范的API的意见。它还添加了数据绑定,合成糖,更改观察者,已发布的属性…我们认为这些事情有助于构建基于Web组件的应用程序。 绿色:一组全面的UI组件(绿色层)仍在进行中。这些将是使用所有红色黄色层的Web组件。 角度指令vs.自定义元素? 参见Alex Russell的answer.基本上,Shadow DOM允许组合一些HTML,但也是封装该HTML的工具。这基本上是一个新的概念在网络和其他框架将利用。 聚合物解决AngularJS没有或不会有什么问题? 相似之处:声明式模板,数据绑定。 差异:Angular具有用于服务,过滤器,动画等的高级API,支持IE8,并且在这一点上,它是构建生产应用程序的更加稳健的框架。聚合物刚刚开始在alpha。 有没有计划将聚合物与AngularJS在未来? 他们是separate projects.也就是说,Angular和Ember的团队announced,他们最终会移动到在自己的框架中使用底层平台API。 ^这是一个巨大的赢得IMO。在Web开发人员具有强大工具(Shadow DOM,自定义元素)的世界中,框架作者也可以利用这些原语来创建更好的框架。他们大多数目前经历了巨大的困难,“完成工作”。 更新: 有一个非常好的文章关于这个主题:“Here’s the difference between Polymer and Angular” (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |