The New Stack 发文梳理了他们认为在 2025 年可能过时的 5 个 JavaScript 库,分别是:jQuery、Moment.js、Lodash、 Underscore.js 以及 RequireJS。
并列出了相关的替代方案:Native JavaScript (for jQuery),Date-fns or Luxon (for Moment.js),ES6+ Native Features (for Lodash),ES6+ Syntax (for Underscore.js),Webpack、Vite 或 ES6 Modules (for RequireJS)。
JavaScript 生态系统发展迅速,曾经不可或缺的东西很快就会过时。继续使用不再相关的库可能会给你的应用程序带来性能问题、增加维护成本并使你的代码可读性降低。采用原生 JavaScript 功能、现代库或内置浏览器 API 可让你的堆栈保持轻量级、应用程序保持高性能并使你的开发实践保持最新。
具体分析如下:
- jQuery
jQuery 是现代 JavaScript 库的鼻祖,因其跨浏览器支持、简单的 DOM 操作和简洁的语法而深受喜爱。然而到了 2025 年,jQuery 该正式退出历史舞台了。
文章指出,原生 JavaScript API 以及 React、Vue 和 Angular 等现代框架已经淘汰了 jQuery 的核心功能。更不用说 vanilla JavaScript 现在包含了诸如 querySelector、addEventListener 和 fetch 等原生方法,可以更方便地提供我们曾经依赖 jQuery 实现的功能。
此外,现代浏览器已经实现了标准化,因此像 jQuery 这样的跨浏览器解决方案就显得多余了。如今在应用程序中捆绑 jQuery 可能会增加不必要的臃肿,在速度为王的时代拖慢加载时间。
如果你仍然依赖 jQuery,建议考虑过渡到模块化、特定于框架的解决方案或重构代码以使用 native JS 方法。它将使你的代码更精简、更快、更易于维护。
- Moment.js
Moment.js 长期以来一直是默认的日期处理库,它因能够解析、验证、操作和显示日期而广受好评。然而,与较新的替代方案相比,Moment.js 现在显得笨重又不灵活,更不用说它还已经被弃用了。Moment.js 的大小约为 66 KB(已精简),在这个捆绑包大小越小性能越快、用户体验越好的时代,也可能是一个很大的负载。
推荐的替代品是 date-fns 或 luxon。两者都提供模块化导入,这意味着你可以只使用你需要的,从而大大减少包的大小。
更妙的是,JavaScript 的 Temporal API 已经发展到可以直接处理日期和时间任务,从而提供了一个更高效的解决方案,而无需依赖第三方库。“如果你还在使用 Moment.js,请将此视为开始迁移的通知。”
- Lodash
Lodash 是一个万能实用程序库,曾经是几乎所有 JavaScript 项目的必备工具。然而时至今日,Lodash 提供的许多功能现在要么是 JavaScript 原生的,要么可以用简洁的代码轻松实现。
在 ES6 及更高版本中,诸如 Object.assign()、spread operators 和 Array 方法之类的功能已基本消除了对 Lodash 的需求。此外,Lodash 库也相当庞大,只导入一个函数往往会给项目带来大量额外开销。
Lodash 的许多实用程序在 ES6+ 中都有原生替代方案。对于一些更小众的用例,可考虑仅导入需要的特定 Lodash functions。
- Underscore.js
Underscore.js 是 Lodash 的前身,与 Lodash 一样,Underscore 的实用程序方法现在已在 JavaScript 中得到原生支持,要么就是可以通过更小的库或单独的函数更有效地实现。
The New Stack 认为,继续使用 Underscore 只可能给项目增加不必要的负担。脱离 Underscore 对性能和可维护性来说是一个巨大的优势,在 2025 年没有理由再坚持使用它的理由了。
- RequireJS
随着 ES6 modules 的出现和现代浏览器的广泛支持,RequireJS 现在已经变得多余。ES6 提供了一种更简洁、标准化的导入和导出模块的方法,使得 RequireJS 的额外复杂性变得没有必要。
Webpack、Vite 和 Rollup 等流行的工具也提供了简化的方法来处理依赖管理,从而不再需要使用 RequireJS。此外,云自动化工具通常与这些现代捆绑程序相辅相成,提供无缝部署和扩展功能。