问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

现在做前端开发,你们还用JQ吗?

发布网友 发布时间:2022-04-26 09:03

我来回答

6个回答

懂视网 时间:2022-04-22 14:12

最近,我们将 jQuery 完全从 GitHub.com 的前端代码中移除了,这标志着我们数年来逐步移除 jQuery 这个渐进式的过程终于结束了,这对我们来说是一件里程碑式的事件。这篇文章将介绍过去我们是如何依赖上 jQuery 的,随着时间地推移,我们意识到不再需要它,但到最后我们并没有使用另一个库或框架取代它,而是使用标准的浏览器 API 实现了我们所需要的一切。

早期,jQuery 对我们意义重大

GitHub.com 在 2007 年底开始使用 jQuery 1.2.1,那是谷歌发布 Chrome 浏览器的前一年。当时还没有通过 CSS 选择器来查询 DOM 元素的标准方法,也没有动态渲染元素的样式的标准方法,而 Internet Explorer 的 XMLHttpRequest 接口与其他很多 API 一样,在浏览器之间存在不一致性问题。

jQuery 让 DOM 操作、创建动画和“AJAX”请求变得相当简单,基本上,它让 Web 开发人员能够创建更加现代化的动态 Web 体验。最重要的是,使用 jQuery 为一个浏览器开发的代码也适用于其他浏览器。在 GitHub 的早期阶段,jQuery 让小型的开发团队能够快速进行原型设计并开发出新功能,而无需专门针对每个 Web 浏览器调整代码。

基于 jQuery 简单的接口所构建的扩展库也成为 GitHub.com 前端的基础构建块:pjax(https://github.com/defunkt/jquery-pjax)和 facebox(https://github.com/defunkt/facebox)。

我们将永远不会忘记 John Resig 和 jQuery 贡献者创建和维护的这样一个有用的基本库。

后来的 Web 标准

多年来,GitHub 成长为一家拥有数百名工程师的公司,并逐渐成立了一个专门的团队,负责 JavaScript 代码的规模和质量。我们一直在排除技术债务,有时技术债务会随着依赖项的增多而增长,这些依赖项在一开始会为我们带来一定的价值,但这些价值也随着时间的推移而下降。

我们可以将 jQuery 与现代浏览器支持的 Web 标准的快速演化进行比较:

$(selector) 模式可以使用 querySelectorAll() 来替换;

现在可以使用 Element.classList 来实现 CSS 类名切换;

CSS 现在支持在样式表中而不是在 JavaScript 中定义可视动画;

现在可以使用 Fetch Standard 执行 $.ajax 请求;

addEventListener() 接口已经足够稳定,可以跨平台使用;

我们可以使用轻量级的库来封装事件委托模式;

随着 JavaScript 语言的发展,jQuery 提供的一些语法糖已经变得多余。

另外,链式语法不能满足我们想要的编写代码的方式。

最后,我们开始使用 Flow 来注解类型,以便在构建时执行静态类型检查,并且我们发现,链式语法不适合做静态分析,因为几乎所有 jQuery 方法返回的结果都是相同的类型。我们当时之所以选择 Flow,是因为 @flow weak 模式等功能可以让我们逐步将类型应用于无类型的代码库上。

总而言之,移除 jQuery 意味着我们可以更多地依赖 Web 标准,让 MDN Web 文档成为前端开发人员事实上的默认文档,在将来可以维护更具弹性的代码,并且可以将 30KB 的依赖从我们的捆绑包中移除,加快页面的加载速度和 JavaScript 的执行速度。

自定义元素

近年来一直在炒作一项新技术,即自定义元素——浏览器原生的组件库,这意味着用户无需下载、解析和编译额外的字节。

从 2014 年开始,我们已经基于 v0 规范创建了一些自定义元素。然而,由于标准仍然在不断变化,我们并没有投入太多精力。直到 2017 年,Web Components v1 规范发布,并且 Chrome 和 Safari 实现了这一规范,我们才开始更广泛地采用自定义元素。

在移除 jQuery 期间,我们也在寻找用于提取自定义元素的模式。例如,我们将用于显示模态对话框的 facebox 转换为<details-dialog>元素(https://github.com/github/details-dialog-element)。

我们的渐进式增强理念也延伸到了自定义元素上。这意味着我们将尽可能多地保留标记内容,然后再标记上添加行为。例如,<local-time>默认显示原始时间戳,它被升级成可以将时间转换为本地时区,而对于<details-dialog>,当它被嵌在 <details>元素中时,可以在不使用 JavaScript 的情况下具备交互性,它被升级成具有辅助增强功能。

热心网友 时间:2022-04-22 11:20

还在用。主要前端人员不足,后端对前端工程化框架和es6等都不了解,所以后台管理和某些项目还是会继续使用jquery。

热心网友 时间:2022-04-22 12:38

新项目不用了,但是旧项目还在用,日常维护还是会用到的

热心网友 时间:2022-04-22 14:13

1、jQuery为王的世代。一扫DOJO、Mootools、Prototype等竞争对手,成为前端必备技能。要实现一个功能,首先想到是否有成熟的jQuery Plugin可用。
2、jQuery和Angularjs、Bootstrap共存的时代。Angularjs内置了jqlite,是一个简化版的jQuery。大量Angularjs的第三方组件都是基于jQuery开发的。Bootstrap的Component是用jQuery写的。
3、Angular、React、Vue三驾马车时代。Bootstrap都没以前那么重要了,Bootstrap 5也已经弃用了jQuery。三大框架的周边生态组件基本也都不用jQuery写了。
现在的开发处于第三个时代,但是前两个时代遗留下来的老产品还很多。

热心网友 时间:2022-04-22 16:04

还是用的,用在一些小的项目上

热心网友 时间:2022-04-22 18:12

现在大多使用vue了 jq是老项目维护使用
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
锅炉切圆直径调整 为什么我打开excel后是灰色的? 有没有什么值得推荐的投资港股的QDII基金? - 知乎 win10电脑屏幕亮度调不了怎么办 考焊工证具体怎么操作 广汽传祺是丰田技术吗 广汽传祺与广汽丰田有关系吗 怎样才能让不愿写作业的孩子听话? 上初中不写作业不想学习的孩子应该如何管教? 出生在2020年农历七月十二日的宝宝怎么取名有内涵? 多哈回合谈判各方呼吁 怎么查车里有没有定位 如何避免间歇性堕落? 关于jQuery ajax页面内容的改变在页内完成,不需要页面切换 如何在一个页面上让多个jQuery版本共存 Fresh Fix 批号DW4U01是什么意思 洛克王国 我的摄魂堕天使咋在战斗的时候变成这个吉他小伙了呢,是系统出bug了吗? 如果一分钟没操作,jQuery怎么实现随眠 求一个基于jquery的移动端可以用的按钮插件 用js或jquery怎么实现一个数字随时间随机增加? 馥蕾诗面霜生产批号la3w10什么意思 网上下载了一个基于jQuery.superslide插件实现的首页分类导航菜单代码... 如何检测车上有没有定位器 jquery 的.post,实现php实时返回数据 jQuery实现随着文本输入及时查询数据库 并显示相应数据 jquery 如何实现评论内容即时显示 jquery如何实现表单输入内容实时预览 如何让魅族手机自动推送升级Flyme7系统 馥蕾诗底部编码为OM1E01可以看出生产日期嘛? 我想用ASP+Jquery做一个网页在线客服系统。 jQuery怎么实现在页面上实时显示当前时间? 基于jq 的ajax页面 如何实现伪静态 酷路泽清洗节气门费油 fj酷路泽1gr发动机怎样清洗节气门 酷路泽启动后怠速在1400 柴油版 丰田酷路泽 4500 开暖风机,待速过高 是怎么回事? 我的丰田酷路泽4000上坡没劲怎么回事减档不积极 丰田酷路泽正开着就熄火了 丰田陆地巡洋舰兰德酷路泽节气门匹配方法 丰田酷路泽还了正时皮带怠速高是怎么回事? 酷路泽4600节气门怎么匹配 丰田酷路泽热车不好发动是什么问题 雷克萨斯gx460行驶8万公里需要保养什么 丰田酷路泽启动不好是什么原因 新款丰田兰德酷路泽曝光 气场强大有望搭载雷克萨斯LS同款发动机 丰田酷路泽故障码p1603 节气门清洗后怠速高怎么弄 丰田酷路泽防冻液缺少了怎么回事 酷路泽4000咆哮声小了 兰德酷路泽怠速小抖动,电脑检测出历史故障,不知道怎么解决。 丰田酷路泽撤油门发动机抖动加速无力