當年很流行,現在已經淘汰的前端技術,請不要再繼續學了!
近幾年,前端技術真可謂是飛速發展,不斷有新的技術涌現,爆火的前端框架 Astro,前端運行時 Bun,構建工具 Vite 等都給前端提供了強大動力。當然,也有很多前端技術隨著技術的發展不再需要使用,有了更好的替代方案。本文就來盤點一下那些不再流行的前端技術,以及對應的現代化替代方案。
本文提到的技術不代表不能再使用了,其仍存在一些適用場景,并且很多遺留老項目可能是使用這些技術實現的,需要進行維護。只是在新項目技術選型時,應盡可能考慮使用更為現代化的前端技術。
jQuery
jQuery 仍然是一個很流行的 JavaScript 庫,其生態系統中有超百萬個插件。但這是一個技術上的歷史遺留問題,并不是真的很流行,只是很多老網站仍然使用。根據 BuiltWith 的數據,排名前 100 萬的網站中有 78% 仍以某種方式使用 jQuery,很大一部分原因是 WordPress 使用了 jQuery,而很多網站都是使用 WordPress 創建的。
雖然 jQuery 依然被廣泛使用,但它已經不再是前端開發中的必須技術?,F代前端框架已經內置了許多 jQuery 的功能,并且具有更好的性能和更少的代碼。
如果要開發新的前端應用,可以選擇當下流行的前端框架,如 Vue、React、Nuxt.js、Next.js 等。
React 類組件
最開始,React 中的組件都是類組件,需要結合生命周期來編寫,寫起來很麻煩。直到 v16.8 版本引入了 Hooks,得以讓我們更方便的使用函數組件,函數組件的代碼也更加清晰易懂。
圖片
因此,理解類組件是如何工作的以及生命周期方法仍然是很好的。但如果正在編寫新的 React 組件,建議使用帶有 React Hook 的函數組件。
Bootstrap
Bootstrap 是一個流行的 CSS 框架,它提供了預定義的CSS樣式、網格系統、JavaScript插件以及許多可重用的組件,如導航欄、按鈕、表單等。在七八年前,很多網站都使用 Bootstrap 來編寫,當時他們聲稱自己是“世界上最先進的響應式前端框架”。但是,現在來看,Bootstrap 的樣式并不是很美觀,還存在包體積大,難以自定義,實現落后,開發體驗不好等問題。
如今,有很多更優秀的替代方案可以選擇,比如:
- UI 組件庫:Ant Design、Element UI、Arco Design;
- CSS-in-JS:Styl-Components、Emotion;
- 功能類優先框架:Tailwind CSS、UnoCSS。
Python Django
Django 是 Python 語言的一種 Web 開發框架,曾被廣泛用于創建動態網站,但由于現代前端技術如 React、Angular 和 Vue 的興起,Django 已經不再是前端開發中的必須技術。Django 相對于現代前端框架來說,生態系統不完善,開發難度更大,并且不符合現代開發的前后端分離的理念。可以選用現在更為流行的前端框架,比如 React、Vue等。
AngularJS
AngularJS 由 Google 于 2010 年發布,當時最著名的 JavaScript 庫是 jQuery。AngularJS(也稱為 Angular 1)不僅僅是一個庫,它是一個將 MVVM 概念帶入前端開發世界的完整框架。
2016 年,我們今天所熟知的 Angular 發布了。注意,不要把 AngularJS 和 Angular 混淆了。AngularJS 從版本 2 開始就被 Angular 取代了,目前已經不再被 Google 官方支持和維護。
Angular 是一個用 TypeScript 編寫的現代化前端框架,是對 AngularJS 的改進和升級。它采用了組件化編程范式、模塊化體系結構,并提供了更好的性能、可擴展性和可測試性。Angular 又被稱為 "Angular 2+" 或 "Angular Next"。
對于新的項目,可以選擇使用 Angular 來開發,但是更推薦使用更受歡迎的 Vue 和 React 來開發,因為在國內這兩個框架使用的更多,生態更加完善,社區比較活躍,這也意味著遇到問題時更容易解決。
Ajax
Ajax 在前端開發中曾經被廣泛使用,但現在已經成為基本技術,不再是獨立的技術。Ajax 只有在前端面試中可能會被問到,很少會在實際的項目中需要編寫 Ajax。Ajax 的功能簡單,使用起來有很多局限性,推薦使用功能更全面的第三方數據請求庫來處理數據請求,比如 Axios,它們的功能更加全面,使用起來也更方便,或者更現代化的前端請求 API:fetch。
Grunt、Gulp
Grunt 和 Gulp 都是前端自動化構建工具,它們可以幫助開發者自動化地執行文件編譯、壓縮、合并等任務:
- Grunt 是一個基于配置的前端自動化工具,開發者需要通過編寫詳細的配置文件(Gruntfile.js)來描述任務的執行過程。Grunt 的生態系統中有大量的插件,覆蓋了幾乎所有前端開發中可能用到的任務,這讓開發者可以快速找到適合自己的插件并加以利用。
- Gulp 是基于流式處理的前端自動化構建工具,它的核心理念是使用流來處理文件。在任務執行過程中,文件以流的形式在任務之間傳遞,這種方式使得 Gulp 的構建過程更加高效,并且能夠減少磁盤的讀寫操作。
雖然這兩個工具都很強大,目前還有一些使用場景。但是隨著前端的快速發展,出現了很多更為現代化工具,比如 Webpack、Vite 等,這些工具使用更簡單,效率更高,推薦使用這些現代化的構建工具。
雪碧圖
CSS雪碧圖是一種將多個小圖標或圖片合并成一張大圖的技術。通過將多個圖標或圖片合并成一張大圖,然后使用CSS的背景定位來控制顯示不同部分的圖像,從而減少了頁面加載的請求次數,提高網頁性能。
但是隨著前端技術的快速發展,出現了更多實用的技術,比如 SVG、iconfont,這些技術提供了更多靈活性和便利性,很多情況下可以取代雪碧圖。HTTP 2 的出現使得一次可以請求多個文件,雪碧圖存在的意義就不大了。并且,由于雪碧圖使用復雜,不易維護,一張圖崩了整個網頁的圖標就都崩了,圖標位置確定后就不好再修改等問題,不再需要雪碧圖這種形式。
IE兼容技術
2022 年 6 月 16 日,IE 瀏覽器正式退役,之后將由 Edge 瀏覽器接棒繼續提供服務。許多網站和程序要求兼容 IE,IE6 對 W3C 標準支持不夠友好,這可能是很多前端開發的噩夢了,IE6 的普及導致之后的 20 年間,不斷有開發者因為適配需要適配 IE6 而焦頭爛額。
如今,IE 瀏覽器,由現代瀏覽器 Edge 繼續提供服務,Edge 緊跟最近的技術,快速更新和維護。開發者也不再需要學習那些令人頭疼的兼容 IE 的技術了,喜大普奔!