AngularJS退役 Angular接手引发的一些思考

之前一直使用的前端框架是React,对Angular的认知仅局限于知道这是个前端框架,甚至一度以为它和AngularJS是同一个东西。

毕业后由于项目的不同,才被迫学习了Angular和AngularJS,了解了这两者的天差地别。简单来说,Angular2.0之前的版本(1.x)叫做AngularJS,之后的版本就都是Angular。近期AngularJS宣布后续不再修复补丁,也就算彻底被弃用。

思考之前做的项目种种,AngularJS虽然有一些便利,但也确确实实存在大大小小的问题,基于JavaScript开发。它的模板功能强大丰富,支持双向数据绑定。可以很容易地订阅、传播事件,具有比较完善的前端MVC框架。还引入了依赖注入,与html交互主要依靠scope,整个项目代码看起来比较原始、杂乱,在项目越大的时候,性能影响很大。它采用脏数据检查的方式,跟踪数据的改变,动态改变用户页面的数据。随着绑定数量的增加,性能就会越来越低。

核心特征


以下是AngularJS中最重要的核心功能:

数据绑定: 模型和视图组件之间的数据自动同步。

适用范围: 这些对象参考模型。它们充当控制器和视图之间的胶水。

控制器: 这些Javascript函数绑定到特定的范围。

服务: AngularJS配有多个内置服务,例如 $http 可作为一个XMLHttpRequest请求。这些单一对象在应用程序只实例化一次。

过滤器: 从一个数组的条目中选择一个子集,并返回一个新的数组。

指令: 指令是关于DOM元素标记(如元素,属性,CSS等等)。这些可以被用来创建作为新的,自定义部件的自定义HTML标签。AngularJS设有内置指令(如:ngBind,ngModel...)

模板:这些符合从控制器和模型信息的呈现的视图。这些可以是单个文件(如index.html),或使用“谐音”在一个页面多个视图。

路由: 它是切换视图的概念。

模型视图: MVC是一个设计模式将应用划分为不同的部分(称为模型,视图和控制器),每个都有不同的职责。 AngularJS并没有传统意义上的实现MVC,而是更接近于MVVM(模型 - 视图 - 视图模型)。 AngularJS团队将它作为模型视图。

深层链接: 深层链接,可以使应用程序状态进行编码在URL中而能够添加到书签。应用程序可从URL恢复到相同的状态。

依赖注入: AngularJS有一个内置的依赖注入子系统,开发人员通过使应用程序从而更易于开发,理解和测试。


而Angular对此做了很多升级,默认改成了单向绑定。整个脏数据检查机制完全重写,整体性能得到了很大的提升。也增加了生命周期、状态管理,支持了TypeScript,方便了组件数据、方法之间的传递。使用起来更加偏向智能化交互,作为一个资深React用户来讲,学习成本较低,拥有测试文件。官方文档十分详细,但是如果做从AngularJS到Angular项目的迁移,还是要花费很大功夫的。

AngularJS的退役,也预示着前端人员更加接受轻量化、生命周期清晰、性能好的框架。尤其是在互联网不断革新的时代,很少再有人愿意去从底层实现逻辑开始研究一门技术框架(后端除外)。我们在使用技术框架的时候也应该经常学习、接受新的知识,比如从JS到TS的革新,接受ES6,每一次的框架更新背后都有一定的风险和机遇。


引用:https://juejin.cn/post/6844903507980468232

你可能感兴趣的:(AngularJS退役 Angular接手引发的一些思考)