两种都用过,但是只是 api 型...感觉还是没有领会到精髓,虽然能体会到它们是不一样的,但是又难以用归纳性的语言表达出来。
|  |      1msg7086      2018-03-28 12:11:48 +08:00  1 就不是一类东西吧。 MVVM 是用来做数据绑定的,jQuery 相当于一个超级甜的函数糖。 本来 jQuery 和 MVVM 框架也是可以一起用的,完全不冲突。 | 
|  |      2msg7086      2018-03-28 12:13:01 +08:00 说得不太准确,数据绑定只是其中一个功能,还有包括页面路由动态渲染等等各种功能。 如果你自己用 jQuery 硬做一套这些功能出来的话,其实就相当于重新造了一套 MVVM。 | 
|      3hAt      2018-03-28 12:32:32 +08:00 jQuery 简化了 dom 操作,我理解增强了浏览器端的 js 功能,本身还是基于原生的 js,html 和 css 构建应用 MVVM 既然是框架,我理解抽象了一直以来的开发模式,用新的方式构建应用,由之前的用 js 操作 dom 变成了用 js 操作数据,dom 的渲染由框架来完成 | 
|      4feverzsj      2018-03-28 12:36:23 +08:00 MVVM 开销大,一般简单的 ui 用 jquery 会更快 | 
|  |      5lovedebug      2018-03-28 12:36:55 +08:00 一个是框架,一个是一系列的库。 | 
|  |      6shiji      2018-03-28 12:40:00 +08:00 via Android 这两个东西不一样,所以没什么需要比的。 我有的时候会一起用(捂脸) | 
|      7tjsdtc      2018-03-28 13:05:44 +08:00 个人的一些经验:MVVM 是数据驱动的开发,也就是说编码的过程中只需要关注数据层的业务逻辑,而无需关注视图层的更新,一般来讲逻辑越是复杂的页面用 MVVM 框架开发相比较传统的 DOM 操作的模式来说代码的逻辑更加清晰,代码量更少,代码风格也更统一。 | 
|      8fanhaipeng0403      2018-03-28 13:07:53 +08:00 一个是框架 , 一个是 DOM 库 | 
|      9z530151716      2018-03-28 13:09:10 +08:00 一个是 SpringMVC  一个是工具类集合 不知我的理解对不对 | 
|  |      10doubleflower      2018-03-28 13:29:21 +08:00 你没有意识到 Vue 比 JQ 进步在哪,说明你的应用很简单没什么动态部分,那用用 JQ 也没什么。 | 
|      11SuperMild      2018-03-28 13:31:32 +08:00 1. 简化了一些常用的任务。比如 Vue 可以方便地做一个组件出来,用 jq 当然也可以做到类似的组件,但是麻烦呀。 2. 规范了套路。比如组件怎么写,规定好了,大家写法统一。用 jq 实现同一个组件有一万种实现方法,每个人写法不一样,团队合作就很烦了。当然你可以规定一套规范,然后你要写一大堆文档说明这个规范的用法(想想就想死),Vue 给你规范好了中英文档都给你写好了,何苦自己再搞一套。 | 
|  |      12xomix      2018-03-28 13:33:40 +08:00 流水线比较一般工具套装的特性、优势在哪?(非抬杠,把你的问题套到更容易理解的角度) 这样看你就知道了吧,你流水线上一样要用一般工具( MVVM 框架一样要用 jQuery ),流水线上可能配置了部分工具(小部分功能不用 jQuery 可以),但是这俩东西没啥可比性。 如果你是很小的一件事换个灯泡这种,当然用一般工具套装(微型应用 jQuery 的解决方案优于各种框架),甚至不用也不错(原生 js 也可以)。 如果你要解决的问题是大规模性的长期的问题,当然要上流水线(大型项目用 MVVM ),但是工具套装也能生产一些简单的微型流水线解决问题(小规模的长期工作较也可以用 jQuery 做点东西凑合)。 | 
|  |      13whypool      2018-03-28 13:38:01 +08:00 没对比可言 在 mvvm 中也可以用 jq | 
|  |      14Biwood      2018-03-28 13:41:51 +08:00 简单点: Vue 靠数据的改变来驱动页面的变化,出发点在数据。 jQuery 靠操作 DOM 结构来改变页面,出发点在 DOM。 | 
|  |      15learnshare      2018-03-28 13:42:05 +08:00 自行车 /火车 精于解决小问题 /适合解决大问题 | 
|  |      16zhchyu999      2018-03-28 13:43:12 +08:00 via Android MVVM 方便了前端工程化,比普通写页面的多了一个吹牛逼的点,但真正需要工程化来解决的并不太多 | 
|  |      17vinsony      2018-03-28 14:06:26 +08:00 感受不到区别证明你的页面还不够复杂 | 
|  |      18murmur      2018-03-28 14:07:06 +08:00 mvvm 在不需要性能前提下 写 交互验证复杂的页面爽的一批 | 
|      19grewer      2018-03-28 14:08:09 +08:00 组件化吧,以前做的时候,组件都是后端搞的然后模板里 include 就行了, 现在改到了 js 里引用了,再加上配套地控制路由(jq 也能控制,但是没有搭配),功能多了, 其他数据的着力点不一样,但还是大同小异 | 
|      20vincenttone      2018-03-28 14:20:57 +08:00 个人理解: 其实从解决问题的方向上来讲,一样也不一样,一样是都想降低代码开发的复杂度,不一样的是实现机制。 如果不想了解那么多,个人觉得 jquery 多数场景适合,但是大型项目上 mvvm 更容易降低项目复杂度(同时有较大可能性带来性能损耗)。 jquery 更加类似于复杂度的简易封装,如果都是使用全部特性的情况下,代码的自由度实际上 jquery 是没什么限制,大型项目上,还是看写码的人。 | 
|      21qa2080639      2018-03-28 14:23:24 +08:00 数据交互多的时候  你用 jQuery 写完再用 Vue 这类写就知道了 | 
|  |      22jimi2018      2018-03-28 14:24:57 +08:00 我觉得本质上是为了省事,而出现的。侧重点不同,解决的需求也不一样,就和汽车和自行车一个意思,都能到达目的地,但是是不同的工具,不知道是否露怯了。 如果对 vue 还是没彻底吃透,建议看看这个《 Vue.js 2 的全家桶系列教程》: 1.vue.js 2 入门与提高 http://xc.hubwiz.com/course/592ee9b2b343f27b0ae1ba99?affid=20180328v2ex 2.vuex 2 入门与提高 http://xc.hubwiz.com/course/597d463fff52d0da7e3e397a?affid=20180328v2ex 3.vue-router 2 入门与提高 http://xc.hubwiz.com/course/5983d3aeff52d0da7e3e3d50?affid=20180328v2ex 4.vue.js 工程化实践 http://xc.hubwiz.com/course/598bad66c7fd1d49453979c9?affid=20180328v2ex | 
|  |      23zjsxwc      2018-03-28 15:08:42 +08:00 via Android 打个比方。 html 是纸 jquery 是铅笔与橡皮 mvvm 框架是 3dm 软件与打印机 | 
|  |      24SourceMan      2018-03-28 15:11:11 +08:00 vue、react 你不可以混搭用 vue、jquery + react、jquery 你可以混搭用 怎么能比较呢。 | 
|  |      25zjsxwc      2018-03-28 15:19:08 +08:00 via Android 单纯 jQuery 的时候,dom 操作之间没有直接的业务关联,dom 操作只是 dom 操作,dom 操作之间没有逻辑关系。 mvvm 框架的数据绑定让 dom 操作之间出现了逻辑关联,于是我们写代码只要理清楚 vm 之间的关系就行,而不需要像用 jQuery 时那样,在理解业务后还需要处理 dom 之间如何一起更新,一旦业务有新改动出现又是一堆伤筋动骨的 dom 操作。 说白了,和变成语言的工程化发展很类似,早期过程式语言,数据只是数据,不包括业务,然后面相对象语言出现了,我们只需要讨论对象关系就行,而不讨论数据,因为对象包含了数据,而对象的方法也包含了业务逻辑,于是减少了开发时的心智负担。 | 
|  |      26lianyue      2018-03-28 15:23:45 +08:00 jq 只是让 dom 操作更方便 MVVM 减少大部分手动 dom 操作(简单的还可以不用手动 操作 dom ) 直接修改数据就可以了 | 
|  |      27Sapp      2018-03-28 15:35:54 +08:00 没意识到优势在哪说明要么没用过,要么做的东西太简单(数据变动方面),或者是偏向自定义 DOM 操作,根本用不上 MVVM。 @SuperMild 组件和你用什么框架 /库没关系,你就用 jq 照样可以做组件(模版),或者想 bootstrap 那样,只不过 MVVM/MVC 让组件化更流行而已,简单不简单也不是针对组件,Vue 的组件一定写起来比 JQ 简单?这是 MVVM 的优势,并不是用 MVVM 组件化的优势。而且组件的可用性和你用什么框架也没太大关系,比如你说的规范了套路,JQ 难道不能规范套路? Vue 就一定要规范套路?这显然不是,组件是否规范和开发人员有关系,和用什么并没关系。 | 
|  |      28shangshicc      2018-03-28 15:48:25 +08:00 MVVM 是架构,jQuery 是库 | 
|      29SuperMild      2018-03-28 15:54:46 +08:00 不能说极端的情况,要说普遍情况才有意义,既然用了 Vue,肯定大部分符合 Vue 的规范,小部分因特殊需要 hack 一下。明明用了 Vue 却偏偏不按它那一套来,大家各自魔改一番,这样做当然可以,但举这种例子就没意思了。 “ JQ 难道不能规范套路”, 当然可以,但是写文档很烦啊。 | 
|  |      30Debiancc      2018-03-28 16:02:11 +08:00 月经贴 软件工程里面有一个很重要的概念是要尽量降低软件复杂度 这个可以从产品角度去看,也可以从工程角度去看 jQuery 只是一个 library,library 的目的是提供类似 helper 的方法来提高你的开放效率 Vue 是一个 framework,framework 则是提供一个类似最佳实践设计思想的 library,告诉你的代码该怎么组织抽象 隔离 测试 甚至部署,一切井然有序 你当然可以说 Vue 能写的 jQuery 都可以写 但是实践告诉我们 在适合 Vue 场景下的代码 jQuery 写出来的就是一坨屎 | 
|  |      31AV1      2018-03-28 17:28:23 +08:00 月经贴+1 视图与模型解耦,业务与 UI 分离,方便后期维护。 jQuery 不是做不到,而是难度比较大。特别是这个时代,有的人会写个 click 事件就自称“精通 web 开发”。如果没有好的框架来规范他们,后期维护就是各种灾难。 | 
|  |      32klausgao      2018-03-29 06:05:24 +08:00 via Android 都 2018 年了还讨论这个。。。。 |