2021年了,jQuery的狀態如何?
我今天一直在使用jQuery——經過這么多年和許多項目。這個庫出現在2006年,比React、Vue甚至Angular.js早了許多年。
jQuery 曾經是 JavaScript 世界的關鍵。它使我們更容易開發動態 Web 應用程序。尤其是涉及到 DOM 操作和網絡請求時,jQuery 更加直接。
但是現在,發生了什么變化,誰還在使用它,它的受歡迎程度如何?以下是答案。
那么,jQuery 中有什么新東西?
我做了一個努力:我回到了2016年的jQuery官方博客頁面,看看有什么變化。
答案是:老實說,沒有發生太多事情。是的,jQuery 3 有很多變化——但沒有一個是真正值得注意的。過去幾年沒有像 React.js 中引入鉤子這樣的更新。
小的變化是支持 for-of 循環,所以它現在可以被用于jQuery對象。在底層,jQuery現在也使用 requestAnimationFrame() 來執行動畫。
然而,沒有更顯著的變化。原因很簡單:jQuery已經把它應該做的事情做到了足夠的程度。
公司還在使用它嗎?
當談到選擇一項技術時,市場上的大公司發揮著重要作用。當有能力的開發者團隊選擇一項技術時,它的分量很重。即使jQuery正在失去人氣,它仍然在網絡上發揮著巨大的作用。
據 Wappalyzer 稱,在所有使用 JavaScript 庫的網站中,jQuery 仍占超過 34% 的巨大份額。
當然,對此類數據應該持保留態度:僅僅因為仍有數千或數百萬個網站仍在使用這項技術,并不意味著這是一個好的決定。 jQuery 也已成為其他庫必不可少的工具。
其中一個偉大的用途是Bootstrap,這個CSS框架使用jQuery進行所有的DOM操作,只有在Bootstrap 5中,才取消了包含jQuery。
事實上,Stack Overflow 仍然使用 jQuery。其他使用 jQuery 的公司包括:
- Wellsfargo.com
- Microsoft.com
- Salesforce.com
是的,即使是微軟。盡管如此,我不會將公司的技術棧視為唯一的真理。甚至他們的網站也有犯錯誤或沒有時間優化的人。
jQuery已死
我不喜歡宣布技術“已死”。畢竟,科技行業不是醫院。不過,你不得不承認 jQuery 已經失去了極大的人氣,尤其是在過去的五年里:
但這是為什么呢?好吧,因為像 React、Vue 和 Angular 這樣的框架和庫變得越來越流行,許多人認為。但這肯定不是原因。流行的框架和jQuery有完全不同的方法。是的,兩者的重點都是讓構建web應用程序更容易。盡管如此,它們之間還是有很大的不同。
這些框架都是關于可重用組件、數據綁定、狀態和單頁應用程序的。另一方面,jQuery應該永遠像純JavaScript的方言,正如你在下面的例子中可以很好地看到。
- let el = document.getElementById('contents');
- // the jQuery way:
- let el = $('#contents');
你不應該對所有東西都使用React、Vue或Angular。對于沒有jQuery的站點來說,jQuery仍然是一個很大的幫助。
框架并沒有殺死jQuery。
現代 JavaScript 殺死了 jQuery。
尤其是方法 document.querySelector() 許多 jQuery 粉絲引用作為他們切換的原因。 (我也經常使用 jQuery,因為 $() 語法實用)。
JavaScript 的發展使我們更容易訪問 DOM。即使是 jQuery 處理得非常好的網絡請求,在 JavaScript 中也變得更加簡單。
我們可能會錯誤地評估 jQuery 如何影響性能
當然,庫對你的網站的性能來說并不是那么好。特別是如果它們很大,加載時間就會增加。但是,jQuery只有30kb,并不是那么大。作為比較,看看Vue、React.js和Angular的壓縮和最小化的NPM包。
- vue: 22 kb
- react-dom + react: 41 kb
- angular: 62 kb
重要提示:這只是包的大小。應用程序的生產包的大小要大得多!因此,在加載時間方面,jQuery 做得很好。
但是渲染性能呢?
大型框架喜歡爭奪誰的性能最好。基準測試通常是同時渲染巨大的表或數千個狀態更新。你已經可以在這樣的實驗中看到不同之處——當然,原生JS 擊敗了他們。
但老實說,基準通常沒有那么有意義。特別是對于只顯示內容而不是“應用程序”的網站,庫的渲染性能幾乎不重要。用戶不會注意到下拉列表使用了“慢速”庫。
最后的想法
我認為仍然使用 jQuery 并沒有錯。該庫在許多情況下仍然非常有用,特別是如果您已經掌握了它。但是,值得一試現代 JavaScript。
如果你想優化你的web應用程序的性能到最后的細節,jQuery沒有任何作用。你可以通過用普通JS編寫所有內容來節省30kb的代碼。
jQuery過去和現在都更適合于那些以內容為主的網站,而不是以功能為主。在更復雜的網絡應用中,React和其他公司的組件理念是一個很好的切入點。