Resumo das vantagens e desvantagens do AngularJS

Vantagens do AngularJS

1. Ligação de dados bidirecional

O AngularJS fornece uma poderosa função de ligação de dados bidirecional, não precisa mais usar JS ou jQuery para manipular elementos DOM, reduzindo bastante o código de front-end.

2. Sistema perfeito, forneça um conjunto de soluções desenvolvidas pela WEB, incluindo modelos

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

3. Introduza alguns testes de unidade conceitual, injeção de dependência, etc. da linguagem de back-end

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

Deficiências do AngularJS e melhorias no Angular

1. Desempenho

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

2. Âmbito

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

3. Roteamento de versão baixa

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

4. A própria linguagem JS

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

5. Form AngularJS

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

6. Custos de aprendizagem

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

Autor: cabeça grande e grande
link: https: //www.jianshu.com/p/59402ddd0831
Fonte: Jane livro
Jane livro de autor reservados pelos autores, são reproduzidas em qualquer forma, por favor, entre em contato com o autor para obter autorização e indicar a fonte.

Publicado 137 artigos originais · Gosto 123 · Visite mais de 250.000

Acho que você gosta

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