什么是AngularJS?
AngularJS 是一个 JavaScript 框架。它可通过 <script> 标签添加到 HTML 页面。简单地说,AngularJS把原来常在后台实现的模板渲染,路由的功能都移到了前端,扩展了html使支持动态视图,从根源上解决了html不适合动态视图的问题。直接在html里绑定数据和逻辑,思路大不相同。
AngularJS 使得开发现代的单一页面应用程序(SPAs:Single Page Applications)变得更加容易。
- AngularJS 把应用程序数据绑定到 HTML 元素。
- AngularJS 可以克隆和重复 HTML 元素。
- AngularJS 可以隐藏和显示 HTML 元素。
- AngularJS 可以在 HTML 元素"背后"添加代码。
- AngularJS 支持输入验证。
AngularJS 扩展了 HTML
AngularJS 通过 ng-directives 扩展了 HTML。
ng-app 指令定义一个 AngularJS 应用程序。
ng-model 指令把元素值(比如输入域的值)绑定到应用程序。
ng-bind 指令把应用程序数据绑定到 HTML 视图。
AngularJS特性和优点
双向数据绑定
声明式依赖注入
解耦应用逻辑,数据模型和视图
完善的页面指令
定制表单验证
Ajax封装
与jQuery的比较
jQuery
JS函数库
封装简化dom操作
使用jQuery的思想是:我拥有一个DOM元素并且想让它去做某件事。也就是命令式编程思想。
angular
JS结构化框架
主体不再是DOM,而是页面中的动态数据
使用angular的思想是:我需要完成什么任务,然后接着设计你的应用,最后再去设计你的视图view层。也就是声明式编程思想。
-------------------------补充于2017.08.01------------------------------------------------
这两种框架的使用场景:
1、DOM不是第一优先级的时候。
2、考虑到效率的问题,在框架内它就支持单元测试,简化了测试上的麻烦。另外,降低模块间的耦合度也有利于程序员梳理项目逻辑,便于维护和调试。
3、考虑到声明式语言的优势。
综上所述:两者是出于不同的目的被创建的,解决的也是不同的问题。当一个项目的重点是数据展示和执行,而不是分析,此时可能AngularJS就会更胜一筹。对于框架的选择,你要考虑到很多因素,需要整体的构思。AngularJS总体上还是一个不错的选择,可以提高程序员的效率,相对减少Web开发中的维护成本。
扩展,什么是命令式编程,什么是声明式编程
jQuery的一个常见问题就是它是命令式编程,就意味着你要告诉计算机如何达成某项目的,其实你想要的就是程序运行的结果。而声明式编程则转移了重点,它只是告诉机器你想要的结果,让机器自己实现这个结果。JavaScript就是一种命令式语言,但HTML,和它指导的AngularJS就是声明式的,只需要告诉计算机你需要的展现形式,至于细节就由机器处理了。这样,完成一个任务的代码就大幅缩减了,代码质量也更高了。
----------------------------------------------------------------------------------------------------
这两篇文章说的不错,
http://www.cnblogs.com/Ricky-Huang/p/5131989.html
http://www.imooc.com/qadetail/174473