AngularJS是一个流行的开源框架,被许多公司采用于网络和移动应用开发。
然而,11年后,AngularJS走到了生命的尽头,让许多团队争相寻找其他选择。
在这里我们会了解AngularJS的历史,导致其成功的差异化特征,AngularJS的替代品,以及对那些仍在使用EOLAngularJS的人提供的支持。
什么是AngularJS?
AngularJS是一个前端Web框架,它为构建单页应用程序提供了功能。
下面我们将简要介绍一下AngularJS是什么,它是如何产生的,以及现在为啥已经走到生命尽头的。
从本质上讲,AngularJS使开发者能够以一种基本感觉直观的方式为他们的用户建立丰富的、可测试的、类似于应用程序的体验。从提供快速构建自定义元素类型的工具,到通过双向绑定简化数据流,再到其直接的测试策略,AngularJS为那些想要获得更多动态用户体验的人带来了巨大的价值。
AngularJS的发展历史
虽然AngularJS现在被称为谷歌支持的开源项目,但它的起源却有些出人意料。
AngularJS最初被设计成一个帮助网页设计师而不是开发者的专有工具,它依赖于对HTML的熟悉程度,允许轻松创建简单但动态的网页应用程序。
第一次迭代最终未能获得吸引力,并由其创建者Mi?koHevery开源。
当时在谷歌工作的Hevery很快就发现了一个使用他新开源项目的机会。
他认为他可以在短短两周的时间内重写谷歌反馈服务--该服务花费了6个月和行代码。
虽然他错过了一个星期的最后期限,但重写的代码行数也不到十分之一。
谷歌对这一结果印象深刻,其兴趣与日俱增,并最终接管了该项目。AngularJS的第一个稳定版本于年问世。
自发布以来,AngularJS经历了许多变化和改进。
最终,正如许多软件的情况一样,它的局限性成为了太大的障碍,Angular2(被称为"Angular")应运而生。
这具有许多变化,包括对TypeScript的完全重写,新的后台工具和整合,以及更多。
年1月,谷歌宣布AngularJS将被停用,转而采用Angular。
他们提供了一个AngularJS最后发布和长期支持的时间表。
然而,由于Covid-19的大流行,他们最终将LTS延长到年12月。
AngularJS的主要功能
虽然AngularJS有许多基本的功能,但看看该库最初的三个支柱可以对它的功能提供相当多的见解。
数据绑定
数据绑定允许模型或视图中的变化反映在另一个中。这简化了系统内的交互。
一个文本输入可以通过一个HTML属性绑定到模型上,这意味着对该字段的任何更新都会反映在下面的模型上。
这大大简化了控制器(定义行为的地方)和DOM之间的交互。
指令
继续以丰富页面的HTML为主题,指令可以定义自定义元素。虽然这些元素可能包含广泛的功能,但最常见的变体被称为组件,它封装了一套更复杂的元素。
依赖性注入
对于那些熟悉软件开发的人来说,这可能不是一个新概念。
然而,它在AngularJS中的使用值得注意,因为它支持可测试性的目标。通过依赖性注入,功能和服务可以很容易地被模拟,提供一个更强大的测试解决方案。
虽然还有很多功能可以被认为是AngularJS的基本功能,但这三个功能代表了该框架的核心。
AngularJS的替代品
AngularJS在年12月31日达到了生命的终点,所以那些仍然使用它的人应该尽快迁移到可行的替代品。
下面是一些与AngularJS相似的框架技术的选择。
ReactJS
ReactJS的定位有点独特,是一种升级的替代方案。它主要专注于视图渲染,缺乏许多功能,如简单的数据绑定,这是AngularJS的核心。
它有限的范围意味着它对于那些深深扎根于AngularJS架构的应用来说并不理想。
然而,对于那些不需要这些额外功能的应用程序,或者可以在其他地方找到这些功能,ReactJS将是令人耳目一新的工作。
VueJS
虽然与ReactJS的程度不同,但Vue的范围也比AngularJS更集中,在需要时依靠其他库来扩展功能。
此外,与这里列出的许多替代方案一样,Vue强烈反对双向数据绑定,因为它往往会产生一些性能和可维护性问题。
虽然Vue确实有很大的分歧,但它也从AngularJS中获得了很多灵感。
其结果是一个有现代设计原则支持的框架,感觉很熟悉。如果Angular太重,而React太轻,Vue可以被认为是一个舒适的中间地带。
其他替代品
自AngularJS以来,可用的网络框架市场已经爆炸性增长。
上面列出的三个框架是一些最受欢迎的,但其他替代方案包括Aurelia、Backbone.js、Ember.js、Knockout、Lit、Meteor和Riot.js。
与任何迁移一样,应该仔细权衡你的应用需求,既要考虑到迁移的便利性,也要考虑到迁移后的可维护性。