AngularJS jQuery 还是 Angularjs,真是纠结..

tq0fqeu · 2014年06月09日 · 最后由 tomatoo 回复于 2016年06月23日 · 17773 次阅读

今天写一个小部件,先是用jQuery写,后来嫌处理数据操作DOM麻烦。后来改用Angularjs写,数据绑定果然爽,但是事件、动画处理起来就很别扭,尤其是要元素位移的,怎么绕似乎都要再和DOM打交道,这个时候又回想起jQuery的爽。于是两个结合起来用,结果更是不伦不类,边界区分不好。。。。。于是这一天就把砖从东头搬到西头,再从西头搬到东头

下班的路上,怒买双蛋煎饼,明天接着搬。。。

共收到 44 条回复

angularjs 和 jquery 并不冲突,可以合理并存

#1楼 @leopku 这俩处理问题思路都不一样,是能并存,咋算合理。。

写个小部件无需动用Angular吧。

建议试下独立jQuery, jQuery + Backbone, React.js + Backbone等组合。

纠结这个是LZ没把两者的分工处理好。什么时候用JQ,什么时候用angular ,是能够合理并存的。

#3楼 @billy 明天看看别的mvc。。

lz應該糾結backbone還是ng.. 實話說ng坑太大,backbone我能一下午搞懂,ng簡直(

jquery和Angular的适用场景不一样,如果只是写个小部件完全没必要用Angular,找个基于jQuery的插件或者自己写个就搞定了 Ps:用Angular处理事件别扭?图森破,布局样式/动画就不是Angular该关注的事,写个小部件也要mvc么?不解

据我所知,ng是不建议用jq的,官方指南的说明。如果需要一些功能,可以去找ng的扩展,好像是directive。 ng的思路就是扩展html的语义,页面里几乎不用js的。

用 directive, angularjs 会将 html 中声明了 directive 的 dom 注入到 directive 代码中

团队的前端,在用ng开发单页应用。 他们也痛苦于ng操作DOM没jquery方便。但是他们强迫自己不碰jquery,完全用ng的方式开发。 导致初期开发成本略高,主要是开发定制组件。越到后面开发效率越高,并且代码更易于维护。

jquery和Angular混用确实有点不伦不类,这两个东西的思考方式是有差别的。 参考这里的精彩回答: https://stackoverflow.com/questions/14994391/how-do-i-think-in-angularjs-if-i-have-a-jquery-background (翻译版)http://www.infoq.com/cn/news/2013/11/how-to-think-angularjs

#12楼 @hooluupog 哈 太巧了 刚好看这个回答.. 

jQuery还是必须吧,毕竟很多库都是jQuery的。 应该考虑的问题是:backbone, angular or ember吧。

动画处理起来就很别扭 ∑(っ°Д°;)っ你是要整多复杂的动画啊,假如是那些用jquery都能实现的动画明明实现起来很简单的啊……

#14楼 @QueXuQ 是必须移除jquery才对……

angularjs是邪教

#17楼 @aptx4869 可是像datepicker, modal, select2这些常用的,都是jQuery啊,还是说Angular已经有这些库的Angular版了?

#19楼 @QueXuQ bootstrap有的应该都是有原生实现的 http://angular-ui.github.io/bootstrap/ 而select2这种形式看上去很美,但实际上对移动端体验不怎么样……

如果只需要数据绑定的话可以看一下 Ractive.js

#10楼 @saiga 这就是向DOM操作的一种妥协

推荐一下我最近在学习的网易js框架http://nej.netease.com/

#22楼 @fredwu 确是清爽,准备试试,唯一担忧的以后哪个才能成为mvc jq

#24楼 @xiongxin8802 貌似不搭, btw 不论前后,个人对这样又大(chou)又全(ying)的lib不感冒

#26楼 @tq0fqeu http://nej.netease.com/course/topic/template/ 他的模板引擎很强大,对于数据的处理很好的,并且速度也很快

#23楼 @tq0fqeu 动画的话你可以用css3的animate,动态判定class。 另外,angularjs 强调的是不用零散的dom操作,面向数据。而不是全面禁止对dom操作。否则 canvas 不就进了 angularjs 黑名单了?

@xiongxin8802 一个没有github地址,最近更新在2012-08-30的库有什么好学的。

@xiongxin8802 收到。这个repo貌似不属于网易官方。还是谨慎些吧,成熟的库比较好一点,除非你是手中无库,心中也无库,随心所欲的JS大牛。

#31楼 @billy 这个是官方https://github.com/NetEaseWD/NEJ forked from genify/NEJ

@xiongxin8802 Music那个做得挺不错,速度也好快。提交的是html, 有点像pjax

#33楼 @billy 恩,我就是看到了网易音乐,才学习了下nej,确实很不错的框架,特别是他的模板引擎,我现在手上做的小项目就用它了

#34楼 @xiongxin8802 一个人用无所谓,如果你希望以后还有人跟你合作,最好用些烂大街的框架。

ng和jQ很好结合的啊 >_<. 我做一个业余项目(https://github.com/suffering/rubychinaspa)时, 因为NG的事情绑定不丰富(或我不了解), 于是专门引入了JQ. JQ不是直接在NG的代码里引用. 而是在directives里封装好. (后来觉得为了一点点的事件绑定引入那么大块的JQ代码实在没必要, 于是后来将JQ移除了). 另外, NG并对动画的支持其实很好的.ngAnimate的存在就是用来解决动画问题的. 支持JS版的动画, 也支持css3版的动画. (NG只是在事件触发时动态增减一两个勾子而已. 而后, 随心所欲地callback就是了.) 对NG不太了解的话, 可能会对DOM位置的变化很是头疼. 这个可以从两个方向来思考问题. 一个是在$http, $resource取数据返回时就直接在callback里改数据结构/排序等. 另一个就是在数据由MC进入V后, 再通过$filter等更改其DOM位置. 最后, 除了这些内置的解决方案外, DIRECTIVE解决一切.

#36楼 @suffering 我也是直接移除jQuery. 一个Angular已经很够用了。

#3楼 @billy backbone和angularjs不是类似的东西么?用jq+bb与jq+ng有啥不同?

@lawrence 不能说类似,只能说都可以归类于前端mv*类框架。 做出的东西效果可以基本相同, 但实现方法差别很大。

#39楼 @billy 你两个都精通么?用哪个好?

#37楼 @hardywu 把乃用ng开发的小网站网址发来:)

jQuery 真的是很方便. 在 React 的文档 https://facebook.github.io/react/docs/tutorial.html 中就引用了 jQuery, 提示

We included jQuery here because we want to ~simplify the code of our future ajax calls~, but it's NOT mandatory for React to work.

想要一个从 jQuery 切换到 Angular 的指南. 感觉目前 Angular 的学习曲线有些陡.

操作DOM的地方放到directive中。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册