很多人把angularjs与jQuery拿到一起相互比较,个人感觉,虽然两者有相互交叉的部分,但是还是没有可比较性的。jQuery只是一个操作DOM的类库而已,而AngularJS是是MVC(或者MVVM)框架。
jQuery是一个 JavaScript 库,主要是用来简化javascript的各种操作以及解决各种浏览器之间的兼容性,其侧重点在于提供了多样的元素选择以及选出元素的各类方法提供,帮助开发者快速进行页面开发。jquery的优点就在于,简化了用户与浏览器的交互, 提高了系统的性能和开发效率。但从本质上来说,并不是程序框架性质的框架。而且,选择器角度也可以直接用原生去实现,而angular更在于其数据和页面的自动绑定所能带来的开发便利,符合页面相对交互的不多,中心更多的在数据呈现的场景下使用。
- jQuery 语法是为 HTML 元素的选取编制的,可以对元素执行某些操作
- $(selector).action()
AngularJS是整体开发的框架模式,实现了让View和数据完全分离,提供的数据双向绑定功能,只要修改数据就可以同步View,基本不用手动操作DOM。当然AngularJS除了数据双向绑定功能外,还提供了路由、服务、过滤器、模板、指令、模块管理、依赖注入、单元测试等功能。
- AngularJS 通过 ng-directives 扩展了 HTML
- ng-app 指令定义一个 AngularJS 应用程序
- ng-model 指令把元素值(比如输入域的值)绑定到应用程序
- ng-bind 指令把应用程序数据绑定到 HTML 视图
总之,Angular是框架,和jquery负责不同层面的工作,Angular的数据DOM的双向绑定比较弱,当然,也有很多人认为这很强大,因为这特性在弱结构弱交互页面中确实很便利,在复杂的结构强交互的页面中,Angular的这个绑定特性的优势也立刻成了没什么用的鸡肋。个人感觉,把Angular理解为房屋的建筑结构可以说框架结构,框剪结构,砖混结构,而把jquery则是房屋的装修样式,有欧式,现代,东南亚风格。两者是独立的,没有较大的比较性。