如果说 AngularJS 比 jQuery 强大,强大在哪?
首先这两者可比较性不大,jquery的侧重点在于提供了多样的元素选择以及选出元素的各类方法提供,帮助开发者快速进行页面开发。但从本质上来说,并不是程序框架性质的框架。而且,选择器角度也可以很多直接用原生去实现,而angular更在于其数据和页面的自动绑定所能带来的开发便利,更符合页面相对交互不多,更多中心在于数据呈现的场景下使用。
所以lz要比较其实应该比较的是backbone和angular这两个。
我之前花很長時間寫的一個 Markdown 編輯器中的大部分代碼,其實只是實現了 AngularJS 的一點皮毛;而 jQuery 的很多功能我都很快地自己寫了實現。
讀過 jQuery 核心的代碼,感覺 jQuery 提供的是一種書寫風格,而 AngularJS 纔是真正強大的難以自己實現的,JS 所缺少的一角,打開了一種全新的思路。
當然,jQuery 和 AngularJS 專注的地方本就不一樣,在各自領域都有各自的應用。
只是論自己實現的難度,AngularJS 大於 jQuery。
jQuery 關注代碼,AngularJS 關注架構和功能。
Reference: http://damoqiongqiu.iteye.com/blog/1926475 https://angularjs.org/
http://jquery.com/
真的是没有可比性,jQuery只是一个操作DOM的类库而已,而AngularJS是是MVC(或者MVVM)框架。
AngularJS实现了让View和数据完全分离,提供的数据双向绑定功能只要修改数据就时时同步了View,基本不用手动操作DOM。
当然AngularJS除了数据双向绑定功能外,还提供了 路由、服务、过滤器、模板、指令、模块管理、依赖注入、单元测试等功能。
不知道这样说了以后你是否有个直观的了解2者之间的区别了。
这个问题好比在问锤子比螺丝刀强吗,强大在哪里?
不同的理念,谁也代替不了谁,真的谈不上谁更强大,看需求选择使用哪个,都是很好用的工具。
有人拿jqueryui和angularjs比较,觉得好傻
Angular是整体开发的框架模式,不管是什么样的框架在具体实现时需要有利的工具辅助实现,而此时jquery发挥巨大的工具作用,是一把非常好用的瑞士军刀,哈哈,所以也叫锋利的jquery,Angular是框架和jquery负责不同层面的工作,Angular的数据DOM的双向绑定比较弱,当然,也有很多人认为这很强大,因为这特性在弱结构弱交互页面中确实很便利,在复杂的结构强交互的页面中,Angular的这个绑定特性的优势也立刻成了没什么用的鸡肋。这两者没有任何冲突,以我的工作来比方,把Angular理解为房屋的建筑结构有框架结构 框剪结构 有砖混结构,把jquery理解为房屋的装修样式,有欧式,现代,东南亚风格,现在明白了吧,两者是独立的不存在冲突更不存在有什么选择的比较。
AngularJS很成功地在团队成员JS能力不足的情况下,
让Java开发人员把这部分较好地写起来了。
好的前端程序员,会尽可能的把前后端数据交互操作进行分离,前端程序员只需要 每个页面 提供 一键傻瓜式js 方法,后端只需按照数据模版返回固定格式数据后调用即可 ( )
js 能力不足 ,以及对 dom 操作不熟练的程序员 ,则需要AngularJS 这种效率低下 ,貌似易用的框架
所以说白了,AngularJS 是给js 能力不足,严重依赖框架的 java程序员用的蹩脚方案
AngularJS 是一个重量级的前端框架 ,也就是说很吃性能,适合对页面性能交互要求不高的地方;
总结:不懂前端的程序员,总想把后端思想带进 前端, 前后不分,AngularJS 是提供给前端技术思想不好的程序员的妥协方案
比较就比较,有什么愚蠢不愚蠢的,太多维度可以做比较了,多少程序员从熟悉jQuery到新学习angular,这个过程必然经历两者的比较。本身就是很多趋势,越来越多人用angular替代了jquery,也许就能说明谁强大,虽然我更喜欢jQuery。
2 回答2.2k 阅读
1k 阅读
1.3k 阅读
以上回到显然不合理,可能是没有用过ng,ng比jq强大的地方主要是:
jquery修改元素是通过手工操作dom,ng修改了数据就自动同步到dom
比如有一个列表要展现:
ng代码:
$scope.list = [1,2,3],
修改list$scope.list[2] = 4
dom的ul第3个li就自动变成4了
而jq,代码大概需要:
说白了就是ng执行要把数据修改了html就自动变了,jq的话修改数据了还需要自己修改html
而且,ng中,html(比如表单的input的value)变了后,数据自动变了,而jq还需要
var data = $('input').val();
这叫数据的双向绑定。
当然ng只适合单页应用,不利于seo,这是另外的事