Vue 或者其他 MVVM 框架相较于 jQuery 的特性、优势在哪?(非抬杠,开放问题)

2018-03-28 12:02:48 +08:00
 Corbusier

两种都用过,但是只是 api 型...感觉还是没有领会到精髓,虽然能体会到它们是不一样的,但是又难以用归纳性的语言表达出来。

5619 次点击
所在节点    程序员
32 条回复
qa2080639
2018-03-28 14:23:24 +08:00
数据交互多的时候 你用 jQuery 写完再用 Vue 这类写就知道了
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
zjsxwc
2018-03-28 15:08:42 +08:00
打个比方。

html 是纸

jquery 是铅笔与橡皮

mvvm 框架是 3dm 软件与打印机
SourceMan
2018-03-28 15:11:11 +08:00
vue、react 你不可以混搭用
vue、jquery + react、jquery 你可以混搭用

怎么能比较呢。
zjsxwc
2018-03-28 15:19:08 +08:00
单纯 jQuery 的时候,dom 操作之间没有直接的业务关联,dom 操作只是 dom 操作,dom 操作之间没有逻辑关系。

mvvm 框架的数据绑定让 dom 操作之间出现了逻辑关联,于是我们写代码只要理清楚 vm 之间的关系就行,而不需要像用 jQuery 时那样,在理解业务后还需要处理 dom 之间如何一起更新,一旦业务有新改动出现又是一堆伤筋动骨的 dom 操作。

说白了,和变成语言的工程化发展很类似,早期过程式语言,数据只是数据,不包括业务,然后面相对象语言出现了,我们只需要讨论对象关系就行,而不讨论数据,因为对象包含了数据,而对象的方法也包含了业务逻辑,于是减少了开发时的心智负担。
lianyue
2018-03-28 15:23:45 +08:00
jq 只是让 dom 操作更方便
MVVM 减少大部分手动 dom 操作(简单的还可以不用手动 操作 dom ) 直接修改数据就可以了
Sapp
2018-03-28 15:35:54 +08:00
没意识到优势在哪说明要么没用过,要么做的东西太简单(数据变动方面),或者是偏向自定义 DOM 操作,根本用不上 MVVM。

@SuperMild 组件和你用什么框架 /库没关系,你就用 jq 照样可以做组件(模版),或者想 bootstrap 那样,只不过 MVVM/MVC 让组件化更流行而已,简单不简单也不是针对组件,Vue 的组件一定写起来比 JQ 简单?这是 MVVM 的优势,并不是用 MVVM 组件化的优势。而且组件的可用性和你用什么框架也没太大关系,比如你说的规范了套路,JQ 难道不能规范套路? Vue 就一定要规范套路?这显然不是,组件是否规范和开发人员有关系,和用什么并没关系。
shangshicc
2018-03-28 15:48:25 +08:00
MVVM 是架构,jQuery 是库
SuperMild
2018-03-28 15:54:46 +08:00
不能说极端的情况,要说普遍情况才有意义,既然用了 Vue,肯定大部分符合 Vue 的规范,小部分因特殊需要 hack 一下。明明用了 Vue 却偏偏不按它那一套来,大家各自魔改一番,这样做当然可以,但举这种例子就没意思了。

“ JQ 难道不能规范套路”, 当然可以,但是写文档很烦啊。
Debiancc
2018-03-28 16:02:11 +08:00
月经贴
软件工程里面有一个很重要的概念是要尽量降低软件复杂度
这个可以从产品角度去看,也可以从工程角度去看
jQuery 只是一个 library,library 的目的是提供类似 helper 的方法来提高你的开放效率
Vue 是一个 framework,framework 则是提供一个类似最佳实践设计思想的 library,告诉你的代码该怎么组织抽象 隔离 测试 甚至部署,一切井然有序

你当然可以说 Vue 能写的 jQuery 都可以写
但是实践告诉我们 在适合 Vue 场景下的代码
jQuery 写出来的就是一坨屎
DOLLOR
2018-03-28 17:28:23 +08:00
月经贴+1

视图与模型解耦,业务与 UI 分离,方便后期维护。
jQuery 不是做不到,而是难度比较大。特别是这个时代,有的人会写个 click 事件就自称“精通 web 开发”。如果没有好的框架来规范他们,后期维护就是各种灾难。
klausgao
2018-03-29 06:05:24 +08:00
都 2018 年了还讨论这个。。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/442073

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX