学习Angular 2+之后,学习AngularJS有多难?

时间:2017-09-23 22:11:29

标签: angularjs angular

让我从理由开始。许多现在使用AngularJS的公司仍在使用它,并且没有立即计划迁移到4+。因此具有可销售性,以及将两者都视为Angular开发人员的必然要求。

我的问题很广泛,但我很想听听那些对两者都有经验的人。它们是完全不同的,还是会将一些知识转移?对于那些非常了解两者的人来说,真正对你有哪些重要区别?

1 个答案:

答案 0 :(得分:5)

与Angular(2及更高版本)相比,AngularJS有几个重要的限制因素会影响应用程序的构建方式。

  • 一个带有字符串DI标记的注入器,没有内置的延迟加载。

  • 配置/运行阶段和同步引导(the overview of configuration recipes)。

  • 数据绑定的范围层次结构及其对应用程序体系结构的影响 - 摘要概念,性能影响,AngularJS特定服务($timeout$q,...)而不是本机同行等。

  • jQuery影响的手动DOM操作方法。

  • 内置服务,指令和过滤器(管道)的集合和API大不相同。

  • 不支持嵌套应用程序(a hack可能)。

  • 没有视图封装和组件样式。

  • 没有内置组件路由器。

  • 没有内置翻译/ i18n。

  • 没有对工作人员和服务器端呈现的内置支持。

  • 没有官方CLI。

自1.5以来,AngularJS的开发一直专注于提供升级策略和常用功能。在很多方面,Angular / TypeScript经验可以作为现代AngularJS开发的最佳实践的源。

AngularJS在其注入器和编译器的工作方式上通常更灵活,并且允许在Angular中使得过多或不可能的过多的整洁黑客。

AngularJS引入了许多较小的差异,如果目标是有意将开发实践限制为允许构建符合Angular指南的TypeScript / ES6 / ES.next AngularJS应用程序的那些,可能会被丢弃。将来很容易升级到Angular。

ng-metadata尽力将AngularJS编码实践与Angular统一起来,但仍需要很好地理解两个框架之间的差异。

然而,如果开发人员在现有的AngularJS项目上工作,并且严重依赖它们并使用传统的编码标准,则较小的差异会产生很大的不同。