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

tq0fqeu · June 09, 2014 · Last by tomatoo replied at June 23, 2016 · 23239 hits

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

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

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 大牛。

@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 中。

You need to Sign in before reply, if you don't have an account, please Sign up first.