AngularJS团队对框架的未来给出了看法,许多程序员发现它是不可接受的。与过去的几乎完全的中断意味着许多人正在使用那些将要过时的框架且没有升级路径的项目。
Google的AngularJS是最受欢迎的UI框架之一,因此已在许多项目中使用。因此,有关下一版本将进行根本性的,非向后兼容更改的消息并不是很多人欢迎的事情-“这是在开玩笑吗?”是一个典型的评论。
在最初的演示中,甚至有人说从Angular 1.X到2.0不会有任何迁移路径,但是由于程序员担心他们的应用程序将被弃用,对此愤怒的回应令Angular团队发表了一篇博客文章软化了它及其在新版本中的整体位置:
“我们使用Angular 2的目标是通过保持与现有API的向后兼容性,为构建不受限制的Web应用程序提供最佳的工具集。有了Angular 2的初始版本后,我们将开始在Angular 1应用程序的迁移路径上工作。
第一大冲击是采用了最新的JavaScript和浏览器。Angular 2.0是使用ES6构建的,它当然目前尚不存在,应该在年底之前完成。Angular 2.0正在使用另一个Google项目Traceur编译器进行开发,该编译器将ES6编译为ES5。这意味着,在ES6广泛可用之前,您可以根据需要使用ES5,但是为了将来证明,计划使用ES6更好。
更激进的是Angular 2将为AtScript引入TypeScript可选类型的扩展。在这种情况下,您不必使用它,因为它肯定必须编译为ES6 / 5。
另一个重大变化是该框架将仅针对常绿”浏览器,即那些符合Web标准的浏览器-Chrome,Firefox,Opera,Safari和IE-但仅最新版本。这意味着旧的IE版本和Android股票浏览器可能无法正常工作。
AngularJS 2也将支持和使用Web组件-最初设计Angular时尚未准备使用的技术。
如果这还不足以使您担心,则框架的基本结构也将发生变化。统一的组件模型将摆脱控制器和模板,并提供一种更简单但不同的工作方式。语法正在发生变化,以使事情更加一致-括号以调用函数,括号为属性,仅给出两个示例。
为了提供一些细节,Angular团队给出了一个1.3模板的示例:
<div ng-controller =“ SantaTodoController”> <输入类型=“文本” ng-model =“ newTodoTitle”> <按钮ng-click =“ addTodo()”> + </ button>
<tab-container> <tab-pane title =“ Tobias”> <div ng-repeat =“ todo in todosOf(” tobias“)”> <input type =“ checkbox” ng-model =“ todo.done”>
{{todo.title}} <button ng-click =“ deleteTodo(todo)”> X </ button> </ div> </ tab-pane>
应该与2.0版模板进行比较
<div> <input type =“ text” [value] =“ newTodoTitle”> <button(点击)=“ addTodo()”> + </ button>
<tab-container> <tab-pane title =“ Good kids”> <div [ng-repeat / todo] =“ todosOf(” good“)”> <input type =“ checkbox” [checked] =“ todo.done > {{todo.title}} <button(click)=” deleteTodo(todo)> X </ button> </ div> </ tab-pane> </ tab-container> </ div>
您可以看到语法更改将不仅需要搜索和替换。
更改的目的是使Angular更快,更合理。例如,已放弃使用jqLite来支持与DOM的直接交互,该交互现在被认为已足够标准,不需要性能降低包装器。此外,整个框架将是模块化的,从而可以仅加载您要使用的内容。
您可以在ng-europe 2014上看到以下视频中引起大惊小怪的演示文稿:
与新的Angular达成协议似乎需要学习很多东西。大多数更改似乎是个好主意。如果您要重新开始,那么他们会采用的方式会比原始框架更接近Angular 2,但这是批评家所抱怨的。他们说这是一个新的框架,具有简单的被盗的Angular名称!
通过提前发布新版本来过早终止当前版本还有众所周知的效果。AngularJS 2.0可能要到明年年底才能使用-但您会在可用之前启动一个新的AngularJS项目吗?即使在I Programmer上,其效果仍然是取消了一组Angular教程,因为如果您重新编写并且更重要的是重新组织以考虑到如此不同的内容,那将是什么意思。
关键是,无论AngularJS 2.0有多好,其影响都是让AngularJS 1.3陷入困境。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。