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