Resumen de ventajas y desventajas de AngularJS

Ventajas de AngularJS

1. Enlace de datos bidireccional

AngularJS proporciona una potente función de enlace de datos bidireccional, ya no es necesario usar JS o jQuery para manipular elementos DOM, lo que reduce en gran medida el código front-end.

2. Sistema perfecto, proporciona un conjunto de soluciones desarrolladas en la WEB que incluyen plantillas

	数据双向绑定、路由、指令、过滤器、模块化、服务(可复用)等特性,
	基本上前端需要用的东西都可以从这个框架里面找到,减少选择性疲劳。

3. Introducir algunas pruebas unitarias conceptuales, inyección de dependencia, etc. del lenguaje de fondo

	能够很容易的写出可复用的代码,对于敏捷开发的团队来说非常有帮助

Deficiencias de AngularJS y mejoras angulares

1. Rendimiento

	导致这个问题的主要原因是 AngularJS 的“双向数据绑定”,也是很多人吐槽的一个点,
	“双向数据绑定”是一把”双刃剑“,在 AngularJS 作用域里面的任何修改都会触发“脏值检测”,
	比如$scope.name = 'AngularJS'这段代码会触发“脏值检测”,AngularJS 会遍历作用域里
	面的所有变量,每一个变量都会被检测是否发生改变,有变化就会把值从视图同步到模型,
	或者模型到视图的同步,如果页面使用大量的双向数据绑定,页面就会可能出现卡顿现象,
	这个是历史遗留的原因,这样的做法的好处是可以兼容低版本浏览器,比如 IE8,不过 AngularJS 1.3 
	开始就不再支持 IE8;双向数据还会导致另一个问题,就是数据的流向很模糊,
	比如你就想把数据单向的从view同步到model,除非自己加注释明确说明,不然关从代码层面是看不出,
	这使得代码的后期维护成本非常高。

2. Alcance

	什么是作用域?如果我把它说成是“上下文”不知道会不会好理解一点,用过 AngularJS 的人就会
	发现,AngularJS 几乎封装了所有原生的 JS API,使用它封装后的 API 才会触发“脏值检测”,比如
	使用原生setInterval(callback, time)定时器,不会触发“脏值检测”,导致开发者需要手动调用 AngularJS
	 底层的接口触发“脏值检测”,比如$scope.$apply()或者 $scope.digest(),这两个都是一样的,
	 $scope.$apply()会调用 $scope.$digest(),因此 AngularJS 封装了$interval服务来解决这个问题,
	 使用原生 JS 事件,都需要这么做。鉴于作用域的各种问题,在新版的 Angular 中,作用域($scope)
	 这个东西已经不复存在。

3. Enrutamiento de versión baja

	页面只能配置一个 ng-view,这让 AngularJS  路由使用起来非常局限,导致很多人都使用
	第三方路由组件 ui-route 来替代官方的 ng-route,ui-route 通过嵌套视图来复用一些通用的部件,
	而第三方的 ui-route 个人觉得也不是很好用,别人的东西用起来就是不爽。新版 Angular 的路由
	已经解决了这个问题。

4. El lenguaje JS mismo

	灵活又有很多坑的语言,又爱又恨难舍难分,网上有很多人讨论过 JavaScript,口水战也不少;
	Angular 选择使用微软的 TypeScript,TypeScript 是 JavaScript 的超集,是 JavaScript 的强类型版本,
	可以编译成 JavaScript,编译器将会去掉 JavaScript 本身没有的东西,所以 TypeScript 
	并不依赖于浏览器的支持,也并不会带来兼容性问题。与 TypeScript 结合之后,使 Angular 
	更加适合开发大型项目。

5. Forma AngularJS

	 对于表单的校验和错误消息提示能力非常薄弱,Angular 提供了非常完善的表单校验和消息
	 提示功能,比如 Angular 提供了响应式表单。

6. Costos de aprendizaje

	AngularJS 存在非常多的概念,模块、控制器、模板、过滤器、服务、组件、指令、双向数据绑定、
	作用域、依赖注入等,这些对于初学者很不友好,而且你还很难准确指出 AngularJS 的核心是什么,
	如果谈到 React 的核心是什么,很多人很容易就会想到“虚拟 DOM”、“组件”。新版的 Angular 的
	核心就是组件,语法上使用一种更加优雅的装饰器注解来整合代码。用Angular,它包含很多复杂的
	概念,也许不懂它为什么要加这么多乱七八糟的东西,但是慢慢地你就会了解一切都是有它存在的
	原因的。有一句话不知道听过没有,大概是这样的:一个程序员不学数据结构与算法,那么他编程
	一辈子的经验就可以写成一本“数据结构与算法”。Angular的情况也大概一样,它是一群人很多年蛋疼
	的经验所总结出来的东西,去学习它我们能少走很多弯路。

Autor: cabeza grande y grande
enlace: https: //www.jianshu.com/p/59402ddd0831
Fuente: Jane libro de
Jane libro de autor reservados por los autores, se reproducen en cualquier forma, por favor, póngase en contacto con el autor para obtener la autorización e indique la fuente.

137 artículos originales publicados · Me gusta 123 · Visite 250,000+

Supongo que te gusta

Origin blog.csdn.net/lz20120808/article/details/100082219
Recomendado
Clasificación