2025 啦,盤點(diǎn)下那些已經(jīng)完全落后的前端技術(shù)!
Hello,大家好,我是 Sunday。
前端是一個(gè)技術(shù)變化非??斓念I(lǐng)域,隨著時(shí)間的發(fā)展很多在過去盛極一時(shí)的庫,也將會(huì)逐漸推出歷史舞臺(tái)。
那么,今天咱們就來看看過去火爆異常,如今已經(jīng)接近退出歷史舞臺(tái)的前端庫,以及替代它們的全新方案。
1、jQuery
替代方案:Vue、React、原生 JS
如果你是一個(gè)老前端,那么一定會(huì)知道 jQuery
。作為 github 上 60k star
的庫,他解決了當(dāng)年令所有人都頭疼的 瀏覽器兼容性問題,并且提供了很多簡(jiǎn)易的語法,用來處理 DOM 操作。
但是,隨著老舊瀏覽器(如:IE)逐漸退出歷史舞臺(tái),新的瀏覽器(如:Chrome 和 Firefox)已經(jīng)逐完善了兼容性的問題。在目前的前端開發(fā)中,我們已經(jīng) 很少 再去關(guān)注瀏覽器兼容性問題了,這就導(dǎo)致 jQueyr 的核心優(yōu)勢(shì)不再明顯。
同時(shí),伴隨著 Vue 、React 這種狀態(tài)驅(qū)動(dòng)的框架興起,也讓 DOM 操作大大減少,而全部改為 數(shù)據(jù)驅(qū)動(dòng)視圖 的方案。
因此,jQuery 在現(xiàn)代的前端開發(fā)中,應(yīng)用場(chǎng)景已經(jīng)變得越來越少了。
2、Backbone.js
替代方案:Vue、React
和 jQuery 同一時(shí)期的活躍框架,也是現(xiàn)在 SPA 單頁應(yīng)用 的早期實(shí)現(xiàn)。在當(dāng)年那可是代表前端的前沿技術(shù)的框架。
不過,隨著前端占比越來越重,Backbone 最初的輕量化設(shè)計(jì)已經(jīng)無法滿足日益復(fù)雜的前端項(xiàng)目了。再加上 Vue、React 的興起,導(dǎo)致目前 Backbone 已經(jīng)很少出現(xiàn)在現(xiàn)代項(xiàng)目中了。
3、Lodash/Underscore
替代方案:ES6+
Underscore 大家可能不是很熟悉,但是說起 Lodash
我相信很多同學(xué)一定是知道的。而 Underscore 正是 Lodash 的前身。
在 ES6 之前的時(shí)代里,JS 的很多 API 并不完善,哪怕是一個(gè)簡(jiǎn)單的 filter
,JS 都沒有提供原生支持。因此,很多我們就迫切需要一個(gè)可以提供更多、更完善 API 的庫,Lodash 就應(yīng)運(yùn)而生了。
但是,隨著 JavaScript 的發(fā)展,ES6+ 中內(nèi)置了許多原生方法(如 Array.map、Object.keys 等),已經(jīng)能夠滿足絕大多數(shù)日常需求。
所以,我們對(duì) Lodash 的需要就逐漸降低了。雖然現(xiàn)在 Lodash 仍然在很多項(xiàng)目中被引入,但其黃金時(shí)代已經(jīng)過去。
4、Moment.js
替代方案:Day.js、Temporal(提案)
Moment.js 是一個(gè)時(shí)間處理的標(biāo)準(zhǔn)庫,它提供了很多:日期格式化、時(shí)間差計(jì)算等方法。
但是,Monent 的整體體積過大,導(dǎo)致會(huì)對(duì)整個(gè)項(xiàng)目的體積產(chǎn)生較大影響。
因此,就出現(xiàn)了 Monent 的替代品 dayjs
主打的就是 輕量化。目前加上 TC39 提出的 Temporal 提案 為日期時(shí)間處理提供了標(biāo)準(zhǔn)化的解決方案,Moment 也正在逐漸退出歷史舞臺(tái)。
5、RequireJS
替代方案:ES Modules、Webpack、Vite
說起前端模塊化,大家想到的應(yīng)該都是 ESM、CJS
這兩種方案。
但是,在這兩種方案之前,前端領(lǐng)域中其實(shí)活躍過很多的模塊化方案,比如:AMD
。而 RequireJS 就是 AMD 的具體實(shí)踐。
只不過,隨著 ESM 的引入,模塊化逐漸標(biāo)準(zhǔn)化。再加上 Webpack、Vite 等現(xiàn)代工具鏈進(jìn)一步簡(jiǎn)化了模塊打包的流程。RequireJS 幾乎完全退出歷史舞臺(tái)了
6、Grunt/Gulp
替代方案:Webpack、Vite
比 jQuery
還老牌,聽說過 Grunt
和 Gulp
的絕對(duì)當(dāng)?shù)闷鹨宦?“老前端” 了。
這兩個(gè)東西是 任務(wù)自動(dòng)化工具(簡(jiǎn)單理解就是:項(xiàng)目打包工具),干一些現(xiàn)在 webpack、Vite 干的事。
最初取代它們的就是 webpack
,不要覺得現(xiàn)在 webpack
都已經(jīng)很 “落后” 了。在當(dāng)年 webpack 可是被成為劃時(shí)代的產(chǎn)品,甚至出現(xiàn)過 webpack 配置工程師 的崗位。
7、Bower
替代方案:npm、Yarn、pnpm
Bower 死于生態(tài)。
其實(shí) Bower 和 npm 屬于同一時(shí)期的競(jìng)爭(zhēng)產(chǎn)品,并且 Bower 更加專注于前端庫的依賴管理,而 npm 則是一個(gè)更廣泛的包管理工具,能夠管理包括前端、后端、工具鏈在內(nèi)的所有類型的依賴。
只不過,隨著前端的不斷發(fā)展,模塊化和工具鏈(如:Webpack)的興起,npm 更大的生態(tài)體系,逐漸讓它成為管理前端依賴的首選工具。隨著 npm 逐漸接管前端生態(tài)(npm 包數(shù)量),Bower 在 21 年也徹底停止維護(hù)了。