首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
拉钩
V2EX  ›  程序员

Vue.js 等前端框架和 jQuery 是什么关系?是替代关系还是可以共存?

  •  1
     
  •   ericgui · 334 天前 · 14953 次点击
    这是一个创建于 334 天前的主题,其中的信息可能已经有所发展或是发生改变。
    请高人指点一二。

    如果可以共存,那么,什么时候用 jQuery,什么时候用 Vue.js 等框架?

    备注:前端框架,包括但不限于 Vue,React,Angular,San 等。
    第 1 条附言  ·  332 天前
    我就是最近在写一个小网站,有些小功能发现 jQuery 好使,有些地方,如果用 vue 就更方便一点。所以才来此问。

    本人不是前端程序员,没想到贵圈真乱。下面吵得不可开交。真是大开眼界。
    第 2 条附言  ·  332 天前
    真不是钓鱼贴,也没有讽刺的意思。

    就是感觉有点跟不上形式了。

    自己一个人写个网站,仅仅想把前端页面稍微做得好看一点,没想到竟然遇到这么多选择,我也是犯了选择障碍症了。

    哎。。。。。
    69 回复  |  直到 2018-01-25 17:21:17 +08:00
        1
    lhx2008   334 天前 via Android
    可以共存,但是意义不大。
    看你前端的逻辑和内容,
    前端复杂多变的话(后台,工具类,手机页面)用 mvvm,相比 jq,可以减少很多 dom 操作带来的工作量。
    内容为主的话(博客,论坛)用 jqury 也可以。
        2
    watzds   334 天前 via Android
    可以共存,也可以替代。
        3
    AlwaysBee   334 天前
    Vue 和 jQuery 都不能称之为框架
        4
    wizardoz   334 天前
    不是一样的东西,但是却有替代性,用好了 vue 之类的你将不在需要 jquery。
        5
    fengdra   334 天前 via Android   ♥ 6
    一个是自动将数据映射到 DOM,一个是手动管理 DOM,一起用不方便
        6
    feverzsj   334 天前
    前浪和后浪的关系,web dev 就是这么乱,不过 jquery 算是很长寿的了
        7
    lihongjie0209   334 天前
    在 DOM 操作方面, Vue 是 jquery 的升级版
        8
    luruitao   334 天前
    5 楼是最靠谱的,Vue 是建立了虚拟 DOM 到真实 DOM 的透明映射
        9
    SuperMild   334 天前
    带着这个问题,花三十分钟学习一下 Vue 就有自己的判断了
        10
    LINAICAI   334 天前 via iPhone
    jq 我觉得只能算是一个函数封装库罢了,vue 强调 mvvm 的开发模式和组件化的封装思路,至于 dom 操作没研究过 vue 不太清楚,个人认为各有各好处和应用场合
        11
    Phariel   334 天前 via Android
    vue 是模板引擎 jQuery 是增强工具 都不能算框架
        12
    mb135   334 天前   ♥ 12
    Vue 是网红,jQuery 是老艺术家,5 年之后可能很少人能记起来 Vue,10 年之后 jQuery 仍会大行其道。

    过气的网红不如狗,你懂的

    jQuery 最 NB 的地方不是各种新概念,而是只填坑不挖坑,孜孜不倦、默默无闻,不给码农添麻烦。

    而反观各种所谓的新概念框架呢?解决一个痛点的同时,带来 3 个新的痛点,而解决这 3 个新的痛点,需要各种插件各种黑科技,终于解决了这 3 个痛点,你会发现又引出了 9 个新的痛点,如此反反复复挖新坑填旧坑,陷入各种坑里不能自拔
        13
    miketeam   334 天前 via iPhone
    mb135 回答这么直接干嘛,不能吹概念别人该怎么混了啊
        14
    Sivan   334 天前
    @mb135 jQuery 很棒,但 10 年后 jQuery 绝对不会大行其道。响应式框架可能会昙花一现,但 10 年后如果前端还是 jQuery 的模式当主流,这个行业的人可以考虑转业了。
        15
    mb135   334 天前   ♥ 3
    @Sivan 只要 html 语言还在,只要 html 还有 dom,那么就永远有操作 dom 的需求,那么 jQuery 就永远有市场,除非 web 标准内置一套 jQuery,Html5 还真的内置了 querySelector,不过远没有 jQuery 实现的优雅。

    可以说 jQuery 反过来影响了 HTML5 标准的制定,起到了指导性的作用,改写了 web 的历史进程。就凭这一点,目前前端任何框架都没资格跟 jQuery 相提并论。(当然那些碰瓷式营销的的水军脸皮那么厚,谁也管不了他们)

    “文章本天成,妙手偶得之”,jQuery 的 api 让人感觉到 web 本来就应该是这个样子的,作者不是发明了 jQuery 而是发现了 jQuery,“本天成”当之无愧。
        16
    learnshare   334 天前
    可以共存,但由于工作机制完全不同,建议完全替代使用
        17
    zjsxwc   334 天前
    不冲突,共存的

    jquery 还是很有用的,dom 操作、deferred 封装的 promise、ajax 操作等等,比手写方便
        18
    slgz   334 天前
    感觉用了 vue 等之后,还要去学 webpack、npm、node (环境),等一推东西。非常的 boring。 不如 jQuery 来的实在,引入了 cdn,拿起键盘就是干
        19
    exonuclease   334 天前 via Android   ♥ 1
    笑看一群吹 jq 的 活动页写傻了这是?
    去拿 jq 撸复杂 spa 试试
        20
    mb135   334 天前 via Android   ♥ 6
    ls 某些低端培训码畜不要用自己在外包公司的悲惨经历去揣测别人,不是所有用 jq 的都是页面仔
        21
    arraysnow   334 天前
    @mb135 什么时候 jq “改写了 web 的历史进程”了?有相关文献吗,我张张见识···
        22
    svenz   334 天前
    @mb135
    1 首先不可否认 jq 的代码艺术价值 优雅的链式调用 无参构造确实非常的漂亮
    2 jquery 的最大存在价值是优雅的处理了浏览器的前端兼容性 但是随着规范化 十年后 jq 价值确实不大 艺术价值更多
    例如 H5 的 querySelector 和 querySelectorall 的存在 已经把使用 jq 的百分之五十的需求替代掉了.
    3 vue react ag 的出现事实上是比 jq 先进,主要解决的问题还是前端的状态问题降低了开发成本,用网红来形容不太恰当.
    4 同意你一点,不是所有的 jq 都是页面仔,但是想在大项目里面写好 jq(直接操作 dom)非常难,虚拟 dom 要比直接操作 dom 减轻了非常多的压力,页面仔是 hold 不住 jq 的大型的 jquery 项目的


    最后完全可以共存看项目性质,如果是一个简单的针对移动端的页面甚至 jquery 也不需要 h5 的 dom API 已经完全足够了
        23
    uestc   334 天前 via Android
    内部系统的话随便找个后端拿 jq 就可以开撸,vue 的话还是要学个几天才能开工
        24
    ThomasChan   334 天前
    刚翻译了一篇关于这些框架的文章,楼主可以看看 https://zhuanlan.zhihu.com/p/32910275 他们的生命周期,共存是可以的,但是只会增加复杂度,不同的框架解决不同的痛点,要先知道自己想做的东西的恢复砸到什么程度,可能会遇到什么样的问题,再选框架
        25
    fy   334 天前   ♥ 1
    1. 可以共存,需要配置一下

    2. 随着对 mvvm 框架的逐渐熟悉,自然而然的就不再需要 jQuery 了。

    3. @slgz #18 不需要学这些。你只需抄起 cli (比如 vue-cli )自动生成初始项目,npm install && npm run dev 就可以开搞了。

    4. 就算不上全家桶,直接从 cdn 也可以单独引入 vue.js ,并以传统的方式来使用。数据绑定是很好的特性,即使如此也很有用。

    5. cli 弄来的全家桶是全方位的革新,这代表着 前后端分离 + 资源自动打包 + mvvm + es6 等一系列内容的引入,很多东西都是我们以前梦寐以求的,比如说自动合并 js、css 并将其压缩(很早以前用单独的脚本来实现,只能说勉强工作);比如说写标准 css,自动适配多个浏览器(自动加入 -webkit- -ms- -moz- 前缀); es6 带来的更是全方位的提升,再也不必像以前那样倒腾 coffeescript 之类了。

    6. 最后建议动手试一试,前端学习成本并不高。
        26
    libook   334 天前   ♥ 1
    如果说是框架的话,就看对框架的定义是什么了。
    个人认为:
    vue 是框架,配套的是特有的对 WEB 系统的抽象以及一系列搭建 WEB 系统的思想和方法论;
    jQuery 是库,提供了方便处理 DOM、方便调用常规算法的工具。

    理论上来说,一个项目既可以用 jQuery 来写,也可以用 vue 来写,也可以什么都不用原生 JS 来写,只不过针对不同项目的情况,各自的实现成本不同,而这种成本并不是绝对的。

    两者的功能既有交集,又有各自特有的,看具体的项目需求和采用的架构思想,决定究竟适合使用什么技术乃至如何搭配。
        27
    notreami   334 天前   ♥ 1
    居然不是从行业、场景出发去选择框架,而是先去选择框架,再来适应行业、场景,真是神奇啊~~
        28
    changwei   334 天前 via Android
    如果你是后端开发人员,我可以打个比方,jq 就是手写 sql,vue.js 就是用了 orm
        29
    exonuclease   334 天前 via Android
    @mb135 不好意思我奶茶家的。某些低端培训码畜不要用自己在外包公司的悲惨经历去揣测别人,用 jq 的十有八九都是苦逼页面仔,能用 jq 撸 spa 的人不会傻到这么干的。
        30
    mb135   334 天前   ♥ 2
    @exonuclease 爷我是腾讯家的出来炫耀过吗?我会说 QQ 邮箱现在还在用 iframe + jQuery 吗?没有任何应用一个 iframe + jQuery 解决不了,如果有,就用两个。

    我会说 spa 是邪路吗?不要说中小公司,就是大公司的应用也很少用 spa,github 几年前就尝试过 spa 了,现在不还是乖乖的换回后端渲染,只要浏览器还有地址栏,还有刷新功能,spa 就是邪路,就是噱头。
        31
    mb135   334 天前
    github 和国产的 gitee 都是用的传统的 jquery,国产的 coding 用了 angular,大家可以体验一下哪个用起来舒服,coding 也不是用的纯 spa,傻子才用纯 spa,只是用 angular 实现了一些切换效果,那些效果用 jquery 完全可以做出来。
        32
    mb135   333 天前 via Android
    spa 永远模拟不出来后端渲染的那种拳拳入肉的体验。后端渲染的页面点击的时候像是直接在墙上作画,spa 操作起来像是在墙上铺了纸(铺的很不贴实),在纸上作画
        33
    akinoniku   333 天前
    @mb135

    C++ 哪点比 PHP 弱?但要做网站还是有不少人选 PHP,毕竟成本摆在那里。

    理智一点啦,还什么拳拳入肉。
        34
    zpvip   333 天前
        35
    rogwan   333 天前 via Android
    虚拟 dom 用起来,页面渲染总有一种微微喝醉酒的感觉
        36
    dan2001go   333 天前
    @zpvip @mb135
    https://zhuanlan.zhihu.com/p/22782487

    这篇文章扎心了。话说自己从最早原生(那时候还没 jQuery )开始写起。后来用了 jQ。
    现在是完全看不懂了。。怎么写一个前端代码要这么多花头。。

    不过我的业务场景大多还是传统的页面渲染为主的那种。如果出去面试,说主要用 jQuery,大概率会被直接干掉的 T_T
        37
    SourceMan   333 天前 via iPhone
    看到了楼上某些可能老前辈守旧的姿态,感觉很可笑
    哦哦,可能也是连 vuejs 都学不好的人,只会 jq,所以特别恼怒现在哪里都用 react,vuejs,ng,jq 被慢慢淡忘
        38
    janus77   333 天前
    相当于后端同时使用 mysql 和 oracle 的关系
        39
    abcbuzhiming   333 天前
    @changwei 先不谈前端,手写 sql 怎么了,目前国内凡是要和钱打交道的领域基本去 ORM 化了,mybatis 在国内可是远比 hibernate 流行的多的
        40
    abcbuzhiming   333 天前
    @mb135 SPA 到底存在什么问题,能说具体一点吗
        41
    SuperMild   333 天前
    上面说 SPA 不能拳拳入肉、或像微微喝醉酒,我很怀疑是不是被渐变动画过程影响了感觉,如果去掉全部过渡动画,SPA 也是瞬间变化的,而且通常比页面刷新变得更快,正是由于变化太快,页面又不刷新,所以通常会加个渐变过程让用户感觉变化不显突兀。
        42
    lalalakakaka   333 天前   ♥ 1
    我大概理解诸位大佬们的分歧点在哪里了。
    正方:
    目前前端页面发展越来越复杂,尤其是 SPA 的流行,必然要求前端技术向虚拟 DOM 操作框架推进。所以要有 vue,react 等等~

    反方:
    可是并不是所有的页面都是这么复杂啊,html 本身就是个极简单的东西(后端曰:不就是拼字符串嘛)。很多时候我们只是做个 CRUD 就 OK 了,哪有那么多复杂需求。而且功能强如 qqmail,技术强大如 github 都在用 jQ。你做个博客页还用 vuejs 什么的岂不是伪需求?
        43
    exonuclease   333 天前 via Android
    我炫耀啥了这不你先攻击我外包公司的么?哦原来 qq 邮箱是 jq 写的啊 怪不得那么难用 隔壁 gmail 老早 spa 了
    @mb135
        44
    exonuclease   333 天前 via Android
    麻烦各位 jq 的支持者 自己去招聘网站看看 jd 要求会 jq 的多还是三大框架的多 大家都是傻子?
    另外 其实我是写 node 后端的我跑来掺和这事干嘛
        45
    sangmong   333 天前
    前排吃瓜
        46
    assad   333 天前 via Android
    @exonuclease 放弃你的 node 吧,赶紧用 JAVA。
        47
    ziki   333 天前
    比较两个事物都分析各自优缺点,针对场景去选择,为什么一定要一方碾压一方的结果呢?
        48
    codermagefox   333 天前
    我只想说,要是后端看到这个帖子又要说:"你看看这群前端啊,唉,我就说嘛..."
        49
    dan2001go   333 天前 via Android
    @codermagefox 哈哈,后端能好到哪里去啊。前端这叫内战,无非就是围绕着 JavaScript 然后吵来吵去。

    后端那就是世界大战了,比如吼一句那个经典的台词『 PHP 是是世界上最好的语言!』
        50
    codermagefox   333 天前
    @dan2001go #49 然而 PHP 就是世界上最好的语言啊
        51
    ZSeptember   333 天前 via Android
    看场景使用。所以是并存的吧。现在的话,一般对外的产品应该用后端渲染的多,对内的管理系统应该很多都开始用 spa 了。
        52
    changlers   333 天前
    jq 其实当成原声 js 的增强库用,mvvm 有自己的一套思想,原生 js 写的好什么用什么都行框架主要还是更专注,现在的年轻人啊,不要听的风是的雨,也要有自己的判断
        53
    changlers   333 天前
    框架更专注思想,怎么限制代码,让团队合作起来更方便更有效率
        54
    gowk   333 天前 via Android
    科科,钓鱼贴
        55
    Tuisku   333 天前
    我司用 React, 所以我也要用 React
    但我其实只是相当一个"页面仔", 而且我一后端容易吗我 233
        56
    Tuisku   333 天前
    @Tuisku #55
    相当 => 想当 mmp
        57
    Pastsong   333 天前
    @mb135 hhhh, b 了
        58
    ericgui   332 天前
    @gowk 不是钓鱼贴。

    我在写一个小网站,有几个页面用 jQuery 感觉很方便,但有一个页面,似乎用 Vue 的数据映射更好,因为数据要重复利用。用在一个页面的好几个地方。

    所以才有此问。
        59
    gowk   332 天前 via Android
    @ericgui 惊了?还没睡?保重身体吧
        60
    ericgui   332 天前
    @gowk 哥在美国,现在是白天。
        61
    Mutoo   332 天前
    可以共存的,vue 提供了组件生命周期的 hooks 可以在 mounted 的时候引入各种 jquery 插件 /事件的初始化,以及在 beforeDestroy 解构各种组件 /事件

    https://vuejs.org/v2/guide/instance.html#Instance-Lifecycle-Hooks
        62
    DOLLOR   332 天前
    这个年代已经可以抛弃 jq 了,因为能用 vanilla.js 做的事,为何还要多此一举用 jq 呢?
        63
    overflowHidden   332 天前
    @exonuclease 不要无脑吹 spa 了。spa 解决的无非是用户体验,实际开发坑有多少就不说了。这年头不是啥都是 spa 的。现在阿里都不能保证完全去掉 jq,更何况你区区奶茶东了。
        64
    Plsea   332 天前
    又到了我第五喜欢的前端撕 X 环节
        65
    KuroNekoFan   332 天前
    @overflowHidden spa 那不叫坑那叫新挑战,传统页面跳转一跳,旧的状态前端完全不用管,spa 的形态下状态变化全部前端维护,难度(坑)比传统页面跳转大很多不是必然的吗?
        66
    guomuzz   331 天前
    vue react ag 这种只关心数据了 需要什么 dom 组件 搞好放在那就行了 数据变 dom 自己就变了 不用太关心 dom
    jq 就是手动撸 dom 你如果数据没多大变化想用 jq 就用呗 哪个合适用哪个 喜欢哪个用哪个 不知道喜欢哪个就两都用一遍再决定 多体验一种技术 以后也能吹逼了 不能学小马过河啊
        67
    ericgui   330 天前
    @guomuzz 谢谢大佬。我思来想去半天,还是暂时不用 vue,项目需要抓紧上线,还要学 vue,有点来不及:)
        68
    wanguorui123   322 天前
    JQuery 是苍蝇拍,Vue 是大炮。苍蝇拍打苍蝇很方便,但是大炮缺不见得。这就是各自用武之地;

    至于 JQuery 的话主要辅助为主,填补浏览器标准(兼容性)的不住之处,如果浏览器标准完善后,JQuery 还需不需要很难说;
    Vue 等前端 UI 库,更像是填补 UI 交互上,繁琐的 DOM 操作的缺陷;
    如果 JQuery 做些简单的 DOM 操作和非 UI 层操作,没必要用 Vue 等 UI 库。
    Vue 等 UI 库,在做复杂的 UI 时候很专注,而 JQuery 不能很好的解决复杂 UI 的问题。
        69
    wanguorui123   322 天前
    同时,Vue 等前端生态链,让人们明白,前端应该需要规范了!!!
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   804 人在线   最高记录 4019   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 21ms · UTC 19:39 · PVG 03:39 · LAX 11:39 · JFK 14:39
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1