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