十年磨一剑,jQuery 4.0.0 正式发布,依旧锋利
祝 jQuery 20岁生日快乐。 自 John Resig 在 2006 年发布 jQuery 以来,这个库已经陪伴 Web 开发走过了二十个年头。而在距离上一次主要版本发布近十年后,jQuery 团队正式推出了 jQuery 4.0.0。 很多人可能觉得 jQuery 已经是时代的眼泪,但看到 jQuery 4.0.0 正式发布的消息时,还是不得不感叹法拉利老了还是法拉利。 这次更新可不是简单的修修补补,这次团队清理了多年的技术债务,移除了过时的 API,这个经典库终于也能跟上现代 Web 开发的节奏。 以下是这次更新中几个最值得关注的变化: 这应该是最喜闻乐见的改动了。jQuery 4.0.0 正式停止支持 IE 10 及以下版本。目前仅保留对 IE 11 的支持,但这只是暂时的,团队计划在未来的 jQuery 5.0 中彻底移除 IE 支持。此外,旧版 Edge(Edge Legacy)、iOS 11 以下版本、Firefox 65 以下版本以及旧版 Android 浏览器的支持也被移除。 只要不是做古董级项目,包体积会更小,运行速度也会更快。 随着原生 JavaScript(ES6+)功能的完善,许多 jQuery 早期的辅助函数已失去存在的意义。4.0 版本移除了大量此类 API,包括用于去除字符串空格的 此外,一些仅供内部使用的数组方法(如 jQuery 的源码终于从旧式的 AMD 模块系统迁移到了 ES Modules。 这下 jQuery 能更丝滑地融入 Vite、Rollup 或 Webpack 等现代构建工具链。而且,在浏览器中可以通过模块化的方式直接加载和运行 jQuery,符合现代开发流程。 在很长一段时间里,不同浏览器对焦点事件(focus/blur/focusin/focusout)的触发顺序存在分歧。jQuery 曾为了统一行为而强制了一套自己的顺序。 现在,所有主流浏览器已达成一致,jQuery 4.0.0 决定不再进行人工干预,直接遵循 W3C 标准顺序, 新的 Slim 版本(精简版)移除了 Deferreds 和 Callbacks 模块,体积进一步缩小(gzip 后减少约 8KB)。 由于现代浏览器(除 IE11 外)都已原生支持 Promise,大多数异步操作已不再需要 jQuery 的 Deferreds。如果是面向现代浏览器的项目,Slim 版本将是更优的选择。 即使不为了新项目,仅仅为了情怀,很多人也想试试这个 4.0 版本。最快的方法就是通过 npm 安装 如果你不想为了尝鲜就在本地折腾一堆 Node.js 配置,或者单纯觉得配环境很麻烦,可以试试 ServBay。它能一键把 Node.js 环境部署好,自动搞定路径配置和版本管理。 环境弄好后,直接在目录里运行 npm 命令拉取最新的 jQuery 就能直接玩,省时省力。 jQuery 4.0.0 的发布证明了它并躺平,而是在努力适应现代 Web 标准,就像一个武林高手,闭关10年,出关后变得更强了。 无论是为了维护现有资产,还是为了在特定场景下快速开发,这个新版本都交出了一份合格的答卷。 最后,这个时代的眼泪还有多少用户知道?
告别旧版的浏览器
移除过时的 API
jQuery.trim、判断数组的 jQuery.isArray、解析 JSON 的 jQuery.parseJSON 等。
push、sort 和 splice)也从 jQuery 原型中移除。现在,开发者应直接使用原生的 JavaScript 方法来替代这些旧功能。源码 迁移至 ES Modules
焦点事件顺序回归 W3C 标准
blur -> focusout -> focus -> focusin。这属于破坏性更新,如果现有项目严重依赖特定的事件触发顺序,升级时需格外注意。更轻量的 Slim 版本
快速上手体验
jquery@4.0.0 跑个 Demo,那一个稳定且配置好的 Node.js 环境必不可少。
结语