wy1993

是什么原因淘汰了 jQuery?

  •  
  •   wy1993 · Jun 23, 2019 · 12958 views
    This topic created in 2696 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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

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

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

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

    KuroNekoFan
    KuroNekoFan
    Jun 24, 2019 via iPhone
    40
    面条代码不好维护
    q397064399
    q397064399
    Jun 24, 2019
    41
    这是 20 年前的网站

    这是 20 年后的网站

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

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

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

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

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

    百度的尿性已经决定了国内 seo 已死。现在国内都在网手机上引导。 别看现在流行 vue 之类的,有水平的前端都是 jquery 一把梭,现在的前端都快忘了什么是 dom 了
    realkenshinji
    realkenshinji
    Jun 24, 2019 via iPhone
    63
    浏览器的 api 升级了
    CocaColf
    CocaColf
    Jun 24, 2019
    64
    需求变复杂了,视图和数据管理也随之变复杂
    halk
    halk
    Jun 25, 2019
    65
    请参考 github 的 blog: Removing jQuery from GitHub.com frontend
    https://github.blog/2018-09-06-removing-jquery-from-github-frontend/
    Hoshinokozo
    Hoshinokozo
    Jul 1, 2019
    66
    jQuery 简化了 DOM 操作,而现代 MVVM 框架直接帮助你操作 DOM,从这个角度来看这是对 jQuery 的进一步抽象。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2727 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 162ms · UTC 10:34 · PVG 18:34 · LAX 02:34 · JFK 05:34
    ♥ Do have faith in what you're doing.