V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
fxjson
V2EX  ›  JavaScript

jquery 时代已经结束了吗?

  •  1
     
  •   fxjson · 309 天前 · 11880 次点击
    这是一个创建于 309 天前的主题,其中的信息可能已经有所发展或是发生改变。

    作为多年的后端,也曾写过 js,再看 js,突然发现已经不是当年的前端

    102 条回复    2021-01-30 22:40:56 +08:00
    1  2  
    w292614191
        1
    w292614191   309 天前
    世界那么大,建议多出去看看。
    user8341
        2
    user8341   309 天前
    原生 js 够强大了,为什么还要用 jquery ?
    ininjue
        3
    ininjue   309 天前
    现在都工程化了 各种编译打包啥的,后端也没那么容易写前端了
    fiveelementgid
        4
    fiveelementgid   309 天前
    并没有,jquery 部分已经内嵌到其他一堆框架里面的了。我记得很久之前去看看 bootstrap,你能在源码级里面看到有 jquery.js.min 一堆玩意
    iszengmh
        5
    iszengmh   309 天前 via Android
    之前接触到 angular,原来前端也有打包编译
    cmdOptionKana
        6
    cmdOptionKana   309 天前   ❤️ 3
    主要是原生 js (严格来说是浏览器 DOM 的 api 标准)把 jquery 的优点都抄过去了,可以理解为现在 js 本身已经自带了一个简单版的 jquery 。
    zhizunzz
        7
    zhizunzz   309 天前
    我有个需求:某网站(我管不着的)是用 react 写的,ajax 或 fetch 过来数据之后渲染的页面,现在我针对这个网站写个浏览器扩展,添加一些元素,监听一些事件,ajax 获取一些数据, 我觉得我用 jQuery 挺合适的

    有大佬有办法用 react vue 之类的实现我这个需求吗?
    mittya
        8
    mittya   309 天前 via iPhone
    觉得还是看需求是什么,如果只是一个简单网站你完全可以继续用它,但工程化大了还是现代些的前端合适些。

    更新换代也是在解决遇到的问题,如果你遇不到可以不变。

    @fiveelementgid 最新版去除依赖了
    easylee
        9
    easylee   309 天前
    引用站内一句评论(忘了出处了)

    “不管你用或者不用,Jquery 依旧是把锋利的刀”
    dvaknheo
        10
    dvaknheo   309 天前   ❤️ 17
    对后端来说,最不能接受的是:javascript 是一种需要编译的语言
    nianyu
        11
    nianyu   309 天前
    JQ 时代结束了
    但是目前依然有无数依赖 JQ 开发的网站
    murmur
        12
    murmur   309 天前
    我会告诉你很多 vue 或者 react 的库还是 jq 套壳么,这包的一层层的
    wukongkong
        13
    wukongkong   309 天前
    @zhizunzz 没办法,现代框架都是要编译之类的。你这个只是页面 dom 的操作,jq 正合适。
    encro
        14
    encro   309 天前
    初次看到 Livewire 的时候,亮瞎了我一眼,果然是给全干工程师的好东西。
    hoyixi
        15
    hoyixi   309 天前   ❤️ 1
    打开 Google,随随便便搜,通过 SEO 搜到的网站,很大概率还是使用了 JQ

    你如果天天做的项目是企业内部用的,App 内的这种,JQ 确实用的不多了
    dk7952638
        16
    dk7952638   309 天前
    jq 已经完成了历史使命 它的很多部分已经成了 es 的标准
    JaguarJack
        17
    JaguarJack   309 天前
    @encro 实实在在是给全干工程师的!太绝了
    Osk
        18
    Osk   309 天前 via Android   ❤️ 2
    习惯性用 jq 因为:
    getElementById 大长。。。
    $("#") 简单直接
    tomoya92
        19
    tomoya92   309 天前 via iPhone
    @zhizunzz 添加事件,原生的 js 就很方便,ajax 请求你不是用了 fetch 了吗
    des
        20
    des   309 天前
    ie:你在说什么
    akakidz
        21
    akakidz   309 天前
    项目里现在第三方的库用的比较多的是 lodash
    ltm
        22
    ltm   309 天前
    白宫官网在用

    https://www.whitehouse.gov/

    /*!
    * jQuery JavaScript Library v3.5.0
    * https://jquery.com/
    *
    * Includes Sizzle.js
    * https://sizzlejs.com/
    *
    * Copyright JS Foundation and other contributors
    * Released under the MIT license
    * https://jquery.org/license
    *
    * Date: 2020-04-10T15:07Z
    */


    ![Screenshot_2021-01-23 主页 Twitter.png]( https://i.loli.net/2021/01/23/UXfymlvDFNhT9pq.png)
    nonduality
        23
    nonduality   309 天前
    百度首页不也在用 jq,据说版本还很老
    cmdOptionKana
        24
    cmdOptionKana   309 天前
    @Osk 现在不用 getElementById 了,用 querySelector, 用法和 jq 一样。如果只是因为长度问题,完全可以自己包装一下用 $ 来代替 querySelector,这样不用引入 jq, 省了流量和加载时间也蛮好的呀。
    rodrick
        25
    rodrick   309 天前
    因为 js 现在已经吸收了很多 jq 的长处了吧,ES6 开始原生已经很强了, 但是不得不说很多人在当年没有学过 js 的情况下都是直接上手 jq 就能学着用的(比如我),很多老的网站还是 jq 维护着,只是新的项目选型基本不太会选他了
    chenqh
        26
    chenqh   309 天前
    学不会 vue, 本来就是后端,偶尔写写前端,感觉 jquery 的上手难度比 vue,react 低好多
    duan602728596
        27
    duan602728596   309 天前   ❤️ 1
    已经不用了。ARV 三大框架,数据驱动,组件化开发,再也不用在业务逻辑里面写一堆选择器了,节省代码量,开发更轻松。
    jquery 的一部分 api 都可以用原生的 javascript 来代替了。
    兼容性也有 babel 来解决了。你要是觉得你的代码上能跑通 chrome87,下能兼容 ie7,无所谓了,随你开心。
    webpack 编译、打包、压缩、上传 cdn,一个命令,一条龙服务。
    Rhilip
        28
    Rhilip   309 天前
    @cmdOptionKana querySelector 不支持 :contains() 选择器(因为不是 CSS 规范),当然也有部分在 CSS 规范中的 比如 :has ( https://developer.mozilla.org/en-US/docs/Web/CSS/:has ) 也存在不支持的情况。

    相对来说,如果不是网站搭建者,只是从插件(含 userscript )的角度,jQuery 操作 dom 确实比 框架 及 querySelector 好用很多。
    (单使用 selector 的话,我会用 sizzle 替代)
    agdhole
        29
    agdhole   309 天前
    是的,结束了
    falcon05
        30
    falcon05   309 天前 via iPhone
    有些重 seo 的服务器渲染的还会用吧
    gricn
        31
    gricn   309 天前 via Android
    并没有,目前强智科技近年新系统还在普遍使用 1.x 版本的 JQuery →_→
    zhizunzz
        32
    zhizunzz   309 天前 via Android
    @tomoya92 现在就是混合用的,不复杂的用的原生,复杂点的用 JQ 方便很多
    sunwei0325
        33
    sunwei0325   309 天前
    var 都亡了, 现在都是 const 和 let 了
    yanzhiling2001
        34
    yanzhiling2001   308 天前
    没有结束,jquery 依然非常好用,jquery 很多都成为 js 的事实标准了
    jzmws
        35
    jzmws   308 天前
    jq 是英雄暮年了
    christin
        36
    christin   308 天前 via iPhone
    @falcon05 需要 seo 的可以用服务端渲染啊
    beginor
        37
    beginor   308 天前 via Android
    后端写前端的话,一般都会喜欢 Angular
    justin2018
        38
    justin2018   308 天前
    该用啥 还是用啥 ~
    用 jq 的 依旧一大堆~
    zzzlalala
        39
    zzzlalala   308 天前
    jq 会永生
    t6attack
        40
    t6attack   308 天前
    firebug 的时代结束了,变成浏览器标配的控制台了。jquery 也是这个趋势。
    charlie21
        41
    charlie21   308 天前
    jquery 做得最好的就是它封装的动画函数 animation / transition ( hide, fadeIn 什么的 ) ,这一点是 react.js 声明式编程的弱项
    https://reactjs.org/docs/animation.html
    https://jqueryui.com/effect

    jquery 的一套动画函数 是非常难以过时的,ARV 取代它的可能性为零
    DualWield
        42
    DualWield   308 天前
    @murmur 兄弟,你在说啥
    felixin
        43
    felixin   308 天前 via Android
    @charlie21 看看
    felixin
        44
    felixin   308 天前 via Android
    PEAL
        45
    PEAL   308 天前
    JQ 我公司还在用,所有前端项目,未来还会用,VUE ?不存在的,未来也不会存在的
    BingoXuan
        46
    BingoXuan   308 天前
    原本小項目是用 jq 的,現在我全改成原生 js 了
    royzxq
        47
    royzxq   308 天前
    via https://www.npmjs.com/package/jquery Weekly Downloads 3,605,888

    React 一周不过 800 万,远超 vue 一周 200 万。 远不止于要凉
    charlie21
        48
    charlie21   308 天前
    我觉得人们对于技术的评估其实有两种办法,一种是看自己喜欢不喜欢,一种是看别人喜欢不喜欢。基本上第一种就是忠君式的喜欢,变态之处在于 “一人不能事二主”,带着嘴巴还爱说 我也是醉了。第二种会看这个东西是不是稳健地戳到了人们的痛处(即使自己没有这个痛处),因为只要人们依然有这个痛处,它就有它的生存空间,这种判断基本上就是心里没有自己,变态之处在于 “博爱”:就与人讨论而言,博爱当然可以;就职业发展而言,就是很难博爱的 因为大量消耗你的注意力资源的东西 就在那里(即使它是允许你免费使用的 它也在消耗你),人也只能是 T 型人才:显然,哪个东西更吸引你 比 大家对技术的看法 更重要,因为被它消耗的是你 而不是大家。
    huayumo
        49
    huayumo   308 天前
    做网站还是 jq 好用
    Seanfuck
        50
    Seanfuck   308 天前
    还没结束,依然没被取代!
    zhuweiyou
        51
    zhuweiyou   308 天前
    如果你就做一个活动页 没有什么 data render , 用 VAR 框架多此一举. 用 jquery 方便多了
    love2075904
        52
    love2075904   308 天前
    如果你经常看某些网站得源码,你会发现用 jquery 得还是比较多,比如: https://spring.io/
    digimoon
        53
    digimoon   308 天前
    @cmdOptionKana 之前想无脑用 query 代替的时候才发现元素后续有变化的时候他不会实时更新,这两个目前来说还是得看情况用
    o0
        54
    o0   308 天前   ❤️ 3
    就是要让你们后端做不了,我们才能涨工资。
    elintwenty
        55
    elintwenty   308 天前
    不考虑维护旧项目等需要老旧技术的场景,也不考虑不需要前端工程化、或者小作品 jq 也够用了,我只能说现在已经 2021 年了
    xiaobai012
        56
    xiaobai012   308 天前
    稍微翻一下网站代码,你会发现 jQuery 依然在被大规模使用,而且很多还是老版本
    mayandev
        57
    mayandev   308 天前
    有人统计过,目前 80% 的网站依然在使用 jquery
    chenqh
        58
    chenqh   308 天前
    @royzxq npm, jquery 都有 360W ?
    lane1
        59
    lane1   308 天前
    个人觉得 jQuery 是不会过时的啦!那些优美且实用的 API 背后是 web 、甚至是 UI 编程的核心思想。套用 Python 社区爱用的话:DOM for Humans.
    adekyou06
        60
    adekyou06   308 天前
    hotwire 了解一下
    alalida
        61
    alalida   308 天前 via Android
    ayase252
        62
    ayase252   308 天前 via iPhone
    没有必要,旧有 JQ 代码完全可以用 DOM API 100%替代。
    no1xsyzy
        63
    no1xsyzy   308 天前
    jquery 没有结束,它只是以另一种方式( DOM API )活着
    (半开玩笑半认真)
    no1xsyzy
        64
    no1xsyzy   308 天前
    @falcon05 需要 SEO 的话其实可以看下 https://sapper.svelte.dev/
    目前看下来形态最舒适的 SSR…… 好用不好用就不知道了……
    kankekan
        65
    kankekan   308 天前
    还没结束,一直在用着呢。
    est
        66
    est   308 天前 via Android
    面向 IE 编程的时代不需要 jq,面向 chrome 的时代也不需要
    jones2000
        67
    jones2000   308 天前   ❤️ 2
    jq 挺好的, 不需要编译, 直接在服务器上改了,就可以了。 什么打包,发布太麻烦了。在说了就算用 vue 或 RN 框架写的,水平烂的,代码还是一样烂, 基本只能自己看懂逻辑,别人根本看不懂。review code 太费劲。前端框架什么的不重要,重要的是开发的人。
    sunorg
        68
    sunorg   308 天前 via Android
    @jones2000 能快速出成绩就行,我们新项目照样 jq 为主,部分页面 arv,根本原因在于:

    1.无需过多考虑的 seo
    2.便捷的操作,就是一个画布,随你喜欢。
    3.无需编译带来的系统扩展性
    4.依然顽强的生态


    ps: arv 我们也用,他编译的特性同时也带来问题:

    编译,导致第三方除非有源码,否则无法轻松为页面写第三方插件。 这对自部署型产品是致命的一个缺点
    sunorg
        69
    sunorg   308 天前 via Android
    @sunorg 再一个差别,精细化带来专业化的人力要求,rav 一定程度上增加了项目人力投入。

    用什么不是想象中的重要,看队伍,看时间,看金钱,看实际需求
    Mithril
        70
    Mithril   308 天前
    @jones2000 你这是啥项目。。可以直接在服务器上改的吗?
    iyangyuan
        71
    iyangyuan   307 天前
    我觉得 jq 并没有消失,他的灵魂已经被传承了,比如 document.querySelector
    murmur
        72
    murmur   307 天前
    @DualWield 我见过那种库,原来是 jquery 开发的,后来加了一层 vue 或者 react 的封装
    RickyC
        73
    RickyC   307 天前
    是. 但是 jQuery 并没有结束.
    Vue 的 dom 操作明显没有 jQuery 方便
    wangyzj
        74
    wangyzj   307 天前   ❤️ 1
    前端圈乱的一比
    yys320carter
        75
    yys320carter   307 天前
    得益于原生 JS 都已经吸纳了 Jquery 的优点
    amundsen
        76
    amundsen   307 天前
    @RickyC 不需要太多的 dom 操作,做炫酷的界面用 css 也行
    zorui
        77
    zorui   307 天前
    2021 年?
    zhchyu999
        78
    zhchyu999   307 天前
    这帮前端折腾出来了护城河
    amundsen
        79
    amundsen   307 天前
    @murmur 这种库懂的前端不会用,太重了
    DOLLOR
        80
    DOLLOR   307 天前
    想要更好的开发体验就用 ARV,想接近底层的 DOM 操作,就用 vanilla 。
    为啥还要引入一个不上不下的 jquery 作为累赘呢?
    GoNtte
        81
    GoNtte   307 天前
    jquery 还是无处不在
    zgw0
        82
    zgw0   307 天前
    新项目应该没人用了吧,我四年前学习 js 的时候 jquery 就已经没人用了,因为 jquery 能做到的原生 js 基本都可以
    JoStar
        83
    JoStar   307 天前   ❤️ 1
    让 jq 被淘汰的不是新框架,而是前端的业务愈发复杂了,jq 承载不起了。

    你要写一个十年前的网页,jq 肯定是比 vue,react + webpack 好多了。当时现在前端网页的需求早已不同往日了,还要追求渲染速度、下载尺寸、首页渲染时间、兼容 JS 新语法...

    所以楼里出现两种声音,有的觉得 jq 老当益壮,有的觉得 jq 已经老当益壮,在于是他俩的场景根本不一样。
    JoStar
        84
    JoStar   307 天前
    @JoStar #83 打错字了
    > 所以楼里出现两种声音,有的觉得 jq 老当益壮,有的觉得 jq 已经老当益壮,在于是他俩的场景根本不一样。

    所以楼里出现两种声音,有的觉得 jq 老当益壮,有的觉得 jq 已经老态龙钟,在于是他俩的场景根本不一样。
    jiangshanmeta
        85
    jiangshanmeta   307 天前
    大哥 东罗马已经亡了
    takemeaway
        86
    takemeaway   307 天前
    前端为了 10%的性能,做了 90%的改变。
    感觉写代码的以后也会成为流水线工人了。
    lau52y
        87
    lau52y   307 天前 via iPhone
    😄后端 java 觉得 vue 和 jquery 没啥区别
    RickyC
        88
    RickyC   307 天前
    @wangyzj 也许这种乱暗藏生机.
    dvaknheo
        89
    dvaknheo   307 天前
    @JoStar 写个给多人用的后台系统,竟然也要服务端渲染我就无语了。 本来后端写数据,前端写模板后面就无脑套了
    除非遇到那些地图,头像之类复杂的后端不能处理的。
    而且编辑小妹碰到问题丢个 url 过来就行
    现在还要加个前端扯皮
    zoharSoul
        90
    zoharSoul   307 天前
    @dvaknheo
    现在还要加个前端扯皮?

    前后端分离没前端怎么分离? 你的意思是不分离, 还是用服务端渲染那套么?
    godblessumilk
        91
    godblessumilk   307 天前 via Android
    @dvaknheo 浏览器的 js 是解释型语言,就算服务端的 node 也是解释型的,不需要编译。。。
    clf
        92
    clf   307 天前
    jquery 最初的目的是兼容性框架和简化原生语句,由于在 safari opera ie 等浏览器的语法差异,使用原生 js 开发需要考虑很多,而 jquery 帮你解决了兼容性的问题。
    Elmer
        93
    Elmer   307 天前
    jones2000
        94
    jones2000   307 天前
    @Mithril 个人 demo 页面, 直接 js 写就行了。 也就 8W 行代码左右吧, 服务器直接改,好了 CND 同步下,方便。
    https://opensource2.zealink.com/hqweb/demo/phone7.html
    libook
        95
    libook   307 天前   ❤️ 2
    以前的 Web API 用起来不方便,比如仅能使用几种简单的 Dom 选择器选择 Dom,各种常见的操作 Dom 的算法、常用的交互动效以及监听事件需要重复性地写很多代码,还有 XHR 用起来很反人类。虽然可以自己封装函数,但是这些在前端开发者群体里是存在共性需求的,所以把这些函数汇总起来,并使用简单的框架思维进行封装——于是 jQuery 就这么出来了。

    从 HTML5/CSS3 等新版本技术开始,到 ES6 以及后续 ES 的疯狂更新,jQuery 所曾致力于解决的问题,要么被原生 JS 、CSS 、HTML 的新特性以及 Web API 的新特性解决了(没有的话可能在 draft/proposal 阶段,或者可以用其他更好的方案),要么前端工程需求上发生了变革转而出现了满足新需求的框架。当前可以说,jQuery 的使命基本已经结束了。

    以前我 jQuery 用的最多的是选择器和 Ajax 请求,后来 DOM 加入了 querySelector(All)可以取代选择器,fetch API 或者 Axios 库都可以用来很方便地发 Ajax 请求,CSS3 的动效也更强大和方便。jQuery 对我来说就完全没必要用了。

    现在做项目在原型阶段如果交互不复杂的话都是原生 JS 和 Web API 手撸,复杂的话就是直接用 Vue 之类的框架。建议在对最新的 Web API 充分了解的情况下尝试用原生 Web API 写一些页面感受一下。

    Vue 保留了像 Angualr1 等第一代前端框架那样的,直接在 HTML 中引入并直接使用的方式,具体可以查阅文档中 From CDN or without a Bundler 的部分,后续有压缩、混淆、合并、兼容性( babel )等需求可以再考虑引入 Webpack 。

    当然,仍然有大量的网站不打算重构或者需要兼容无比陈旧的浏览器而依然在使用 jQuery,就像仍然有军事系统在用软盘、仍然有政府系统在用 WinXP 。但使用量并不代表趋势,想了解趋势可以去看看各个前端岗位的招聘要求。

    对于初学者来说,建议把原生的 JS 、CSS 、HTML 以及 Dom 、Bom 等 API 掌握扎实,然后学习 Vue 、React 、Angualr 等框架。如果真的遇到特殊需求需要用 jQuery 的,看看文档很快也能上手。
    libook
        96
    libook   307 天前
    楼主可以再了解一下 WebAssembly 、WebComponent 、WebWorkers 、WebGPU 、WebSocket,以及现在已经有商业项目在使用的前端 Micro Service,你会发现现在的前端技术和 10 年前的技术比起来有很大的变革。
    enchilada2020
        97
    enchilada2020   307 天前 via Android
    @libook 您说的真棒 受教了 菜鸟表示 Web API 好多好乱好杂 MDN 文档看来看去也弄不清 不像 JS 有分级明确的 guide tutorial 和 reference 不知道该怎么捋清头绪 求教如何把这块弄透
    yinzhili
        98
    yinzhili   306 天前
    还活得好好的
    RockShake
        99
    RockShake   306 天前
    有一些东西还是免不了用的,一些工业软件自带的 web 开发功能,只能用这些库
    libook
        100
    libook   306 天前   ❤️ 1
    @enchilada2020 https://developer.mozilla.org/zh-CN/docs/Web/Reference/API
    这个链接里,把 Web API 分成了几大类,你可以分别点进去看,进入每个具体的 API 后注意看左侧的索引,会有属性、方法的列表,把内容浏览一遍了解一下大体有啥功能就行,一般人都记不住所有的东西,在你用的时候能想起来大概有个功能可以满足需求,然后再来翻文档就好,很多东西用的多了自然就记住了。

    前端很多知识就是很分散,每个特性基本上相对独立,绝大多数都只能靠积累。
    1  2  
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1294 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 00:00 · PVG 08:00 · LAX 16:00 · JFK 19:00
    ♥ Do have faith in what you're doing.