V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wy1993
V2EX  ›  前端开发

是什么原因淘汰了 jQuery?

  •  
  •   wy1993 · 2019-06-23 11:20:09 +08:00 · 11244 次点击
    这是一个创建于 1978 天前的主题,其中的信息可能已经有所发展或是发生改变。

    作为初学者,对这个问题感到困惑

    66 条回复    2019-07-01 11:52:44 +08:00
    binux
        1
    binux  
       2019-06-23 11:28:30 +08:00
    需求变复杂了
    levon
        2
    levon  
       2019-06-23 11:29:55 +08:00 via iPhone
    移动端富客户端
    rogwan
        3
    rogwan  
       2019-06-23 11:34:54 +08:00 via Android
    后端 API 化,前端 SPA 化,虚拟 DOM。jquery 依旧是那把锋利的刀,只是现在前端上来就是集成工具箱。
    SuperMild
        4
    SuperMild  
       2019-06-23 11:41:39 +08:00   ❤️ 2
    以前的主流是整个页面跳转刷新,后端负责把渲染好的 html 发给前端,前端用 jQuery 之类的做一些简单处理。

    后来单页面应用兴起,后端只返回 json 给前端,而前端几乎包揽了一切工作(以前业务逻辑、路由在后端,现在都移到前端了)。

    你可以试试做一个稍复杂一点的单页面应用,就能明显感受到新型前端框架的好处。
    kekxv
        5
    kekxv  
       2019-06-23 11:43:04 +08:00 via Android
    别问,问就是人变懒了
    shintendo
        6
    shintendo  
       2019-06-23 11:47:12 +08:00   ❤️ 1
    前端以前是表单页面,现在是客户端应用,工程复杂度提高了,jQuery 的命令式编程就很难 hold 住了,需要声明式的虚拟 DOM 框架。
    写简单的活动页面还是可以的。
    shintendo
        7
    shintendo  
       2019-06-23 11:51:38 +08:00   ❤️ 7
    “现在前端太浮躁了一年八个新框架刷存在感怀念 jQuery 一把梭的黄金年代”党还有 30 秒到达战场
    peneazy
        8
    peneazy  
       2019-06-23 11:57:10 +08:00 via iPhone
    前端变复杂了,业务逻辑都往前端跑
    DOLLOR
        9
    DOLLOR  
       2019-06-23 11:59:59 +08:00
    想钻研 web 底层的,直接用 DOM API,而不是 jQuery 这个经过二次封装的“库”;
    想专注业务逻辑的,不如用各种框架,而不是 jQuery 这个封装不够彻底的“框架”。

    而 jQuery 就在一个高不成低不就的尴尬位置,除了维护旧页面兼容 IE5 以外,已经想不到 jQuery 需要的场合了。
    love
        10
    love  
       2019-06-23 12:09:40 +08:00
    jquery 只是 dom api 的简单封装,你可以试试用 jquery 写个稍复杂交互的 web 页,会死,特别是数据直接绑定 dom 节点非常的不灵活和不直观,而上古的分离框架 backbone+jquery 组合也好不了太多,因为没有嵌套能力。

    react + redux 这类模式就能很好地梳理复杂逻辑,项目再大也很清淅。
    codermagefox
        11
    codermagefox  
       2019-06-23 12:23:06 +08:00
    尝试用 Jquery 撸一个简单的页面编辑器吧.
    你就懂了....
    nisnaker
        12
    nisnaker  
       2019-06-23 12:24:30 +08:00
    1、当年做前端写 js 需要兼容各种浏览器,这一点如果自己做及其恶心,jQuery 的出现相当于有了一个统一的 api,所以大火。成也风云败也风云,现在基本都是面向 chrome 开发,接口统一,jQuery 就没那么重要了。
    2、jQuery 的选择器功能强大,用起来很顺手,然而现在浏览器自带了 querySelector。
    3、jQuery 写动效也很方便,然而现在有了 css3。
    4、很早也用 jQuery 写过 SPA,毕竟 SPA 用户体验好,然而自己维护 state 很头疼,后来的解决方法跟现在的前端框架也差不多了,也就没必要再用 jQuery 了。

    我现在写一些简单的 landing page 还是会用,毕竟打开编辑器直接就能开干还是蛮爽的。
    terranboy
        13
    terranboy  
       2019-06-23 12:25:42 +08:00   ❤️ 1
    淘汰?应用场景不一样 各大门户网站哪个没有 JQuery
    tonylau
        14
    tonylau  
       2019-06-23 12:28:49 +08:00 via Android
    同 3 楼
    wesnow
        15
    wesnow  
       2019-06-23 12:29:24 +08:00 via Android
    互联网上的网站有几个不用 JQuery 的?
    impl
        16
    impl  
       2019-06-23 12:31:29 +08:00 via Android
    达尔文说,物竞天择
    wd
        17
    wd  
       2019-06-23 12:45:25 +08:00 via iPhone
    因为电脑配置变高了
    YuTengjing
        18
    YuTengjing  
       2019-06-23 13:08:06 +08:00 via Android
    组件化发展趋势,声明式战胜了命令式
    q8164305
        19
    q8164305  
       2019-06-23 13:12:06 +08:00 via Android
    交互多了,你试试页面交互多的时候用 jq 写个试试,难度极高
    garlics
        20
    garlics  
       2019-06-23 13:14:30 +08:00 via Android
    没有双向绑定?
    Merlini
        21
    Merlini  
       2019-06-23 13:15:20 +08:00
    在数据驱动的今天,数据绑定的框架比 JQuery 用起来方便很多。JQuery 兼容性很高,但抽象度其实并没有那么高。它只是做了一些很简单的事,让你用起来很方便,从概念角度上来说跟原生 js 没有太大区别。
    当然在写一些简单的小工具的时候,JQuery 的优势就体现出来了,快糙猛,舒服的很。
    iMusic
        22
    iMusic  
       2019-06-23 13:17:33 +08:00
    jQuery 最核心的特性是使 JS 操作 DOM 更简单,并且磨平浏览器之间的差异,现在随着浏览器发展,已经提供足够的 API 去方便的操作 DOM,各个浏览器也向着规范靠拢,简单的页面大多时候没必要引入 jQuery,浏览器提供的 API 已经够用,同理还有`lodash`。

    另外现代前端开发稍微复杂点的需求,还用原始的读写 DOM 不仅麻烦而且性能不高。前端开发说到底就是 state 和 UI 的同步,现在主流的框架有一个共同点,底层 DOM 的更新和优化交给框架来做,开发者主要关注 state 的变化。

    总结,一是浏览器自身的发展,二是现在复杂的开发需求。前者使前端开发减少了对 jQuery 的依赖,后者造成 jQuery 不太够用。
    gamexg
        23
    gamexg  
       2019-06-23 14:29:58 +08:00
    双向绑定?
    jin5354
        24
    jin5354  
       2019-06-23 14:53:47 +08:00
    都是什么鬼回复 原因就一行字:不再需要直接操作 DOM 了
    Tink
        25
    Tink  
       2019-06-23 14:55:20 +08:00 via iPhone
    现在前端动不动就是脚手架
    limbo0
        26
    limbo0  
       2019-06-23 16:11:06 +08:00 via Android
    维护和编写,推荐拿 vue 试试
    leafre
        27
    leafre  
       2019-06-23 16:17:02 +08:00
    前后端分离方便,回归 js 本质
    dobelee
        28
    dobelee  
       2019-06-23 16:17:44 +08:00 via Android
    说需求变复杂的站不住脚,一直以来哪有不复杂的需求,jQuery 一把梭当年也可一战。
    cnzzz
        29
    cnzzz  
       2019-06-23 16:57:30 +08:00
    BlBana
        30
    BlBana  
       2019-06-23 17:04:00 +08:00 via Android
    那么有个问题,现在初学者入门前端还有必要深入学习一下 jQuery 么,还是说看完 JS 基础以后直接框架上手练习
    askfilm
        31
    askfilm  
       2019-06-23 17:06:37 +08:00
    啊? jQuery 被淘汰了吗?
    xrr2016
        32
    xrr2016  
       2019-06-23 17:29:20 +08:00
    @BlBana 不用学,DOM api 基本满足操作 dom 的需求,直接学框架就好了
    php01
        33
    php01  
       2019-06-23 18:00:20 +08:00
    先问是不是,再问为什么。
    notreami
        34
    notreami  
       2019-06-23 18:58:32 +08:00
    jquery 没法装 13,webpack 才能装 13
    zlhsvc
        35
    zlhsvc  
       2019-06-23 19:48:41 +08:00
    现在前端都用啥框架了?我的记忆还在 JQ 年底
    longbo666
        36
    longbo666  
       2019-06-23 22:10:59 +08:00
    没淘汰啊,做官网门户还要用的,做 webapp 可能用不到
    winiex
        37
    winiex  
       2019-06-23 22:32:41 +08:00
    尝试用 jQuery 和 react/vue 都写一个带关键词推荐的即时输入搜索框的小需求就懂了。
    justin2018
        38
    justin2018  
       2019-06-23 22:36:07 +08:00
    Webpack 配置工程师 😁
    KasuganoSoras
        39
    KasuganoSoras  
       2019-06-24 00:01:46 +08:00   ❤️ 2

    KuroNekoFan
        40
    KuroNekoFan  
       2019-06-24 07:53:38 +08:00 via iPhone
    面条代码不好维护
    q397064399
        41
    q397064399  
       2019-06-24 09:00:15 +08:00
    这是 20 年前的网站

    这是 20 年后的网站

    20 年后的网站 无论是交互体验 还是实时动态化 ,从交互功能上来讲 碾压 20 年前的网站 100 倍
    我举的还是微博这种 社交网站,你要去用一些看板类的网站就明白了
    kisshere
        42
    kisshere  
       2019-06-24 09:13:38 +08:00
    不管前端各种层出不穷的框架
    jQuery:你大爷永远是你大爷
    TimPeake
        43
    TimPeake  
       2019-06-24 09:26:32 +08:00
    @q397064399 微博的 pc 页面估计得有 10 年没大更新了
    kevin1852
        44
    kevin1852  
       2019-06-24 09:28:49 +08:00
    我觉得主要还是前端要搞面向对象,jq 不是面向对象的
    bmy
        45
    bmy  
       2019-06-24 09:30:29 +08:00
    我就经常 angular/Vue 和 jQuery 一起混用。。
    xianxiaobo
        46
    xianxiaobo  
       2019-06-24 09:41:39 +08:00
    现在大部分前端项目依然在用 jquery,但是 jquery 的地位变低了, 以前可以说整个项目依赖 jquery,现在是某个插件依赖 jquery
    simo
        47
    simo  
       2019-06-24 10:14:59 +08:00
    jQuery 主要为了解决兼容而造出来的,并且试用的前端业务复杂度也比较低。
    当下的好多项目采用前后分离方案,前端工程化程度越来越高,jQuery 并不适用。
    micean
        48
    micean  
       2019-06-24 10:21:13 +08:00
    ES5、ES6
    ben1024
        49
    ben1024  
       2019-06-24 11:22:05 +08:00
    淘汰不存在,只是从主力变辅助
    v2 都没淘汰 JQuery
    Bluecoda
        50
    Bluecoda  
       2019-06-24 11:26:23 +08:00
    要想用起来体验好,客户端就得有更多侧重,代码量肯定要变大
    单纯的 jquery 写的代码难写,难懂,难维护,所以后面就有 backbone+jquery
    但还是不够,所以就有了现在的框架,并且发现 jquery 不需要了
    hyy1995
        51
    hyy1995  
       2019-06-24 11:26:25 +08:00
    jquery 为什么不行?为什么被 vue、react、angular 等流行框架取代?一句话概括吧:前后端分离
    o0
        52
    o0  
       2019-06-24 11:34:08 +08:00
    淘汰还是不至于的。
    jimliang
        53
    jimliang  
       2019-06-24 11:38:39 +08:00
    @q397064399 为什么要用微博的界面举例子呢,谁不知道微博的 web 界面做得贼垃圾,卡顿、资源占用高、反馈迟钝,用起来非常难受。
    q397064399
        54
    q397064399  
       2019-06-24 11:41:09 +08:00
    @jimliang #53 因为微博是我的图床.. 我顺带截图了
    mywaiting
        55
    mywaiting  
       2019-06-24 13:09:36 +08:00   ❤️ 1
    淘汰还至于吧,至少小项目还是可以带上 jQuery 的,不是谁都需要 SPA 这样的

    只是时代变了,jQuery 没有引领 web 前端的潮流了~

    不过 jQuery 的理念,我觉得在各大 MVVM 框架里发扬光大啊,从这个层面来说,jQuery 不曾淘汰,反而时代和技术的发展,越发显得 jQuery 当初设计理念的前瞻和先进

    我觉得前端一直给别人一种假象,就是某某落后或者没有用了,君不见 jQuery 还在 wordpress 里用,那就说明 jQuery 运行在数以千万的网站上。现在的 react、vue 这些,炒得火热,但未必有 jQuery 的 X 分之一的使用率

    再者从代码的角度而言,jQuery 的代码堪称集 JavaScript 之大成,无论是代码的质量、使用、API 设计,可以说是前端中最牛逼,JS 里能找到的黑科技,从 jQuery 中几乎都能找到,前端中的最牛逼,我觉得没有之一。作为初学者,如果能从中了解一二,那对以后的学习那是大有裨益的
    rodjl
        56
    rodjl  
       2019-06-24 13:40:02 +08:00 via iPhone
    @jimliang 微博 web 版确实烂,不登陆看评论拉到最低居然会跳去登陆界面
    rodjl
        57
    rodjl  
       2019-06-24 13:41:12 +08:00 via iPhone
    @rodjl 登陆=》登录
    sugars
        58
    sugars  
       2019-06-24 13:47:22 +08:00
    业务一旦复杂,用 jq 来写的话,后期拓展和维护就是噩梦
    stabc
        59
    stabc  
       2019-06-24 13:48:32 +08:00
    常规网页还是离不开 jquery。
    qsnow6
        60
    qsnow6  
       2019-06-24 13:49:34 +08:00
    angular/Vue 之流如何搞定 SEO 需要被百度爬虫抓取的问题
    maichael
        61
    maichael  
       2019-06-24 13:49:35 +08:00
    说一千道一万,就是 jQuery 写起来没有现代一些的前端框架爽,旧项目用的不少,但如果是新项目,选用 jQuery 的肯定没多少。
    alexkkaa
        62
    alexkkaa  
       2019-06-24 14:02:41 +08:00 via Android
    淘汰? 需要 seo 的哪个不用 jquery。
    至于内部系统,手机里的非常规网站比如各种混合开发微信小程序等等,还有管理后台这种的那就想用什么用什么,什么方便快速用什么。

    百度的尿性已经决定了国内 seo 已死。现在国内都在网手机上引导。 别看现在流行 vue 之类的,有水平的前端都是 jquery 一把梭,现在的前端都快忘了什么是 dom 了
    realkenshinji
        63
    realkenshinji  
       2019-06-24 15:13:29 +08:00 via iPhone
    浏览器的 api 升级了
    CocaColf
        64
    CocaColf  
       2019-06-24 16:21:00 +08:00
    需求变复杂了,视图和数据管理也随之变复杂
    halk
        65
    halk  
       2019-06-25 14:02:27 +08:00
    请参考 github 的 blog: Removing jQuery from GitHub.com frontend
    https://github.blog/2018-09-06-removing-jquery-from-github-frontend/
    Hoshinokozo
        66
    Hoshinokozo  
       2019-07-01 11:52:44 +08:00
    jQuery 简化了 DOM 操作,而现代 MVVM 框架直接帮助你操作 DOM,从这个角度来看这是对 jQuery 的进一步抽象。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1054 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 107ms · UTC 19:12 · PVG 03:12 · LAX 11:12 · JFK 14:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.