jQuery 的時代已經(jīng)過去?

轉(zhuǎn)自 | InfoQ
作者 | 褚杏娟
jQuery 是一套跨瀏覽器的 JavaScript 開源庫,可以簡化 HTML 與 JavaScript 之間的操作。
地址:https://github.com/jquery/jquery
此外,jQuery 還提供了一些開箱即用的函數(shù)來做動畫 DOM 元素,而無需弄亂 CSS。在沒有 jQuery 之前發(fā)出 AJAX 請求很麻煩,但使用 JQuery 只需幾行代碼即可完成。jQuery 提供了一個可以在大多數(shù)瀏覽器上工作的 API,這在當時使用 JavaScript 是很難實現(xiàn)的。
2006 年 jQuery 官網(wǎng)的樣子:

今天,它在 GitHub 上共收獲了 56.3K 的 Star? 共計 277 名貢獻者,由一個龐大的志愿者團隊 jQuery 基金會負責日常維護。

略顯老態(tài)
但是,隨著時間的推移 JavaScript 已經(jīng)變得成熟了很多,它支持了許多新的 API,社區(qū)也構(gòu)建了很多庫來填補 jQuery 可能留下的任何空白。
現(xiàn)在,開發(fā)者幾乎可以在原生 JavaScript 中做任何 jQuery 可以做的事情。例如:
用帶有 querySelector 和 querySelectorAll 的 CSS 選擇器語法來選擇元素 用 classList API 在元素上添加、刪除和切換類 用 addEventListener 將事件處理程序附加到 DOM 元素和窗口 等等
很多事情用原生 JavaScript 已經(jīng)可以做的很好,所以大多數(shù)情況下已經(jīng)不再需要 jQuery。
有網(wǎng)友評論道 “我個人發(fā)現(xiàn)普通的 JS API 和 fetch 甚至比 jQuery 的東西更干凈。但人們?nèi)匀怀鲇诹晳T使用 jQuery,是因為擺脫它需要做很多工作。”
同時隨著 Angular、Vue 和 React 等框架的出現(xiàn)和流行,一直未有特別創(chuàng)新的 jQuery 更顯“老態(tài)”。
更有網(wǎng)友直言:“對我來說,他們 (jQuery ) 就像是那個隨著時代變遷,沒有更新知識的老灰胡子?!?/p>
時代已經(jīng)過去?
近期,英國公共部門信息網(wǎng)站 GOV.UK 宣布該公司刪除了 jQuery 作為所有前端應用程序的依賴項,這意味著“JS 大小減少了 32 KB(31% ~49% 之間)”。

實際上,一些大型網(wǎng)站、開源項目等,都已經(jīng)移除了對 jQuery 的依賴。
早在 2018 年,GitHub 已經(jīng)宣布從 GitHub.com 的前端代碼中完全移除了 jQuery?!霸缙冢琷Query 對我們意義重大。”GitHub 前端工程團隊在方式發(fā)布的文章里表示?!霸?GitHub 的早期階段,jQuery 讓小型的開發(fā)團隊能夠快速進行原型設(shè)計并開發(fā)出新功能,而無需專門針對每個 Web 瀏覽器調(diào)整代碼?!?/p>
但隨著 GitHub 成長為一家擁有數(shù)百名工程師的公司,jQuery 帶來的價值已經(jīng)隨著時間的推移而下降。比如技術(shù)債會隨著依賴項的增多而增長,給企業(yè)帶來很大的維護成本。因此,GitHub 最終決定刪除 jQuery。不過,GitHub 沒有選擇另外的庫或框架,而是使用標準的瀏覽器 API 來實現(xiàn)。
不只 GitHub,Bootstrap 最新版本也將刪除 jQuery。
盡管被認為已經(jīng)過時,但 jQuery 仍然是占主導地位的 JavaScript 庫。今天的開發(fā)人員可能沒有意識到在使用 jQuery,因為它被嵌入在了許多大型開源項目里面,其中最著名的就是 WordPress。
“大多數(shù)網(wǎng)站都不需要復雜的開發(fā)框架,它們大多是具有一些動態(tài)行為的靜態(tài)網(wǎng)站,這種網(wǎng)站通常用 WordPress 編寫。jQuery 在這個場景下仍然很流行,因為它既簡單又有效,人們覺得沒必要停止使用它。”jQuery 開發(fā)者 Micha Gobiowski-Owczarek 在接受外媒采訪時說道。
Micha Gobiowski-Owczarek 也明確表示,為了不與瀏覽器沖突,jQuery 不會修改原生原型,而是用 jQuery 包裝器對象包裝 DOM 節(jié)點,每個操作都會創(chuàng)建一個新的包裝器對象。大多數(shù)情況下,這并不重要,但對于具有大量 DOM 操作的、非常復雜的應用程序來說,可能會成為一個問題。
未來的很長一段時間里,jQuery 還繼續(xù)會是 WordPress 的一部分,因為它很難在不破壞向后兼容性的情況下將它刪除。但一些改變已經(jīng)發(fā)生,如 WordPress 創(chuàng)建的 Gutenberg 編輯器不依賴于 jQuery。
隨著時間的推移, WordPress 肯定會逐步更新技術(shù),這是一個漸進的過程,jQuery 的最終去留也很難說。
但不可否認的是,jQuery 開源項目為前端技術(shù)做了很大的貢獻,填補了歷史的空白,成為了一代人的回憶。
我剛開始接觸前端時就是 Bootstrap + jQuery 開源框架,用 jQuery 寫 AJAX、選擇器、操作 DOM,那時的我才大四,真是恍如隔世!
有網(wǎng)友評價說:“jQuery 完成了歷史使命、jQuery 代表著青春!“
對此,你怎么看?歡迎在評論區(qū)留言。
