技术使用感受: JQuery 和 Vue

2023-04-13 17:26:33 +08:00
 2503

关于 JQuery 和 Vue 代表的 MVVM 框架。

我本人是比较喜欢 JQuery ,感觉 Vue 让一切变得特别的复杂难操作,是我自己的问题,还是也有和我一样的想法。

如果你深度的使用过 JQuery ,和深度的使用过 Vue ,希望你能分享一下感受。

14765 次点击
所在节点    程序员
125 条回复
Leviathann
2023-04-13 23:09:47 +08:00
主流的 PC 站点,都没有使用 MVVM

不清楚 react 算不算
反正 fb twitter ig 都用的 react ,
office 的网页端、飞书也用了 react
QlanQ
2023-04-13 23:24:24 +08:00
能说出这样话的人,估计水贴,或者就没写过几行代码吧
QlanQ
2023-04-13 23:27:56 +08:00
jquery 直接操作 dom ,你切换一个按钮,你需要写多少行 jquery ,你要记录状态,根据状态切换不同 dom 的显示隐藏
列表按钮多了,给 dom 的 id 命名都要带好多信息才行
vruzo
2023-04-13 23:30:55 +08:00
所识所见,亦是所束所缚
DrakeXiang
2023-04-13 23:46:25 +08:00
16 年转行后第一份工作写了一年 jq ,当时比较菜,spa 刚刚兴起,但是小作坊还在用 jq ,而且都不会模块化,设计和老板说的效果还是 spa 的类型,各种同页面切换状态和表格动态编辑,最后一个页面有 3k+行,里面大量的字符串拼接,然后各种切换隐藏显示的逻辑和更新数据的方法遍布各处,现在想起来都觉得不寒而栗。

从 17 年到现在我再没写过一行 jq ,甚至碰到代码里面有可能需要用到 ref 的方式都本能地反感,因为我总觉得“数据驱动”就不应该再去手动更新 dom ,当然如果要做定制动效那可能还是得碰 dom ,不过我碰到的动效都不太复杂,基本就是 css 或者 js 循环更新数据就 ok 了,甚至动画库都没用过。

你说的 admin 在我看来正是 vue/react 这类框架的 sweet spot:大量数据规律渲染,格式相对统一,没有多少动效,业务逻辑可能比较复杂,这些都是“数据驱动”占优势的方面,我完全看不到 jq 能有什么“自由”的地方,正如我之前提到的,显示、隐藏,响应式数据更新或者双向绑定,数据渲染,这些你用 jq 做起来体验能好?除非你做了高度封装,但要么最后使用还是需要显式调用或者封装成和 vue/react 一样的自动更新,那还跟 jq 有什么关系。。
ashong
2023-04-13 23:59:58 +08:00
jquery 的优点缺点都是灵活,后期维护拓展不方便
lujiaosama
2023-04-14 00:08:32 +08:00
看来是没参与过什么大型复杂的工程. 比如一个大型复杂动态表单,根据配置动态生成,复杂到需要拆分成 N 个表单,表单项之间的联动校验非常复杂, 拆分之后还需要跨组件通信. 用 VUE 硬干单文件都几千行了, 用 JQ 手工拧麻花是准备写多少?拉屎倒是爽, 维护火葬场?
pocarisweat
2023-04-14 00:34:01 +08:00
这楼里好像又没有提到 Stimulus.js 的。

我的评价是,jQuery 的流行有其历史背景,它有些 API 很方便,但更重要的原因是它磨平了很多兼容性问题。但今天 Web 的兼容性难度已经远远没有那么高了,需要的场合用原生 DOM API 就可以搞定。

如果需要一些复杂的绑定关系,但仍不想脱离 DOM ,可以用 Stimulus ,这个库有些冷门,但我认为很好地填补了原生 JS 和 React/Vue/Angular 这类稍重的前端框架之间的空缺。

只有当你需要更复杂的对应关系,以至于 DOM 对你而言是负担,或者项目达到单页应用这样的规模时,才应该考虑 Vue/React/Angular.
icyalala
2023-04-14 00:49:29 +08:00

老夫写代码就是一把梭 /拿起键盘就是干
感觉已经是历史了
stabc
2023-04-14 00:58:24 +08:00
@makelove
>你用 jquery 怎样管理海量状态并动态反映到 DOM 上?
你这个前提就是个悖论。jq 是事件驱动,vue/react 是状态驱动。用 jq 不存在“海量状态”。
stabc
2023-04-14 01:04:04 +08:00
个人感觉,如果是团队协作的话,首推 vue/react 。因为天然模块化,非常适合分工。

个人项目,感觉还是 jquery 爽,用 jquery 真的就像说话一样,不需要考虑太多,需要什么写什么。而 react 总要“迁就”它的一些限制、规则、局限等等。

至于说“用 jquery 不如直接用 js”,你把 jquery 当做 js 的语法糖不就好了。
tairan2006
2023-04-14 08:49:23 +08:00
jquery 连个双向映射都没有,你写大点的项目就累死
ikaros
2023-04-14 09:16:46 +08:00
我现在还是 jQuery 一把梭,不过仅限于个人娱乐项目 =。=
JKeita
2023-04-14 09:18:39 +08:00
两个没啥可比性吧,一个偏工具,一个偏框架
magichacker
2023-04-14 09:21:31 +08:00
@kop1989smurf web 版 PS ,web 版 Adobe 各种全家桶,各种 web 版图形化编辑系统。
Felldeadbird
2023-04-14 09:27:18 +08:00
反正两个不是同一个东西。

JQ 属于上一个前端版本的开发思想,后端大包大揽。

VUE 则是 API 时代的分工工具。

写 JQ 时,会渴望拥有类似 VUE 的做法,因为不用担心意大利面条 。写 VUE 时,却希望可以做到 JQ 那种随用随爽。。
Seanfuck
2023-04-14 09:30:54 +08:00
数据复杂点层级多点,vue 自动渲染就不行了要手动强制渲染,不知道改进了没
Seanfuck
2023-04-14 09:36:35 +08:00
@QlanQ 实际上操作 dom 比操作数据容易,操作数据经常要遍历
yunyuyuan
2023-04-14 09:38:39 +08:00
经典流量密码贴。
首先你说"Vue 的本质就是一个后端的数据渲染器"了,可以看出你没怎么用过 vue ,对自己不熟悉的领域下定论,真有你的!
我的建议:用 jq 挺好的,jq 发展这么多年,稳定性和兼容性不用担心,建议继续用下去,专门学习 vue 成本太高不值得。
Seanfuck
2023-04-14 09:45:52 +08:00
@tairan2006 这个双向映射,用 vue 渲染一个列表,用 jq 删掉一行,vue 会自动删除数据里对应的行吗,不熟

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

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

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

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

© 2021 V2EX