GitHub 改版,重構(gòu)頁面移除了 jQuery 真的有必要嗎?
喜歡的開源的同學(xué)肯定會注意到最近 GitHub 的改版,不知道大家是否習(xí)慣新的 Dashboard 呢?
除了界面的修改,GitHub 的前端團隊還乘機移除了頁面中的 jQuery:
值得一提的是,GitHub 前端團隊并未使用其它框架來代替 jQuery,而是使用原生 JS:
-
用 querySelectorAll 來查詢 DOM 節(jié)點;
-
使用 fetch 代替 ajax(在不支持的瀏覽器上使用 XHR);
-
使用代理事件來進行事件處理;
-
為一些尚未實現(xiàn)的 DOM 標準寫了 polyfill;
-
更多的使用自定義元素(CustomElement)。
他們把其中的一些成果也在 GitHub 上開源了:
Fetch polyfill: https://github.com/github/fetch
Delegated events: https://github.com/dgraham/delegated-events
Custom Elements: https://github.com/search?q=topic%3Aweb-components+org%3Agithub
jQuery 曾風(fēng)靡一個時代,大大降低了前端開發(fā)的門檻,豐富的插件也是前端開發(fā)者得心應(yīng)手的武器庫,但是,這個時代終于要落幕了。隨著 JS 標準和瀏覽器的進步,jQuery 的很多精華被原生 JS 吸收,我們直接使用原生 API 就可以用類似手法來處理以前需要 jQuery 的問題。在新的 Web 項目中,如果不需要支持過于陳舊的瀏覽器版本,那么的確沒有必要使用 jQuery。
但是,像 GitHub 這樣重構(gòu)掉 jQuery 有必要嗎?
到底要不要重構(gòu)掉 jQuery?
在微博上,有人指出其實沒必要對舊項目進行大改:
對于沒有更多需求的項目,的確沒有必要大動干戈,但是,GitHub 是一個仍在繼續(xù)迭代,不斷有新功能模塊推出的大型項目。通過改版的機會進行重構(gòu)、切換技術(shù)棧,是目前互聯(lián)網(wǎng)行業(yè)比較通常的做法。
在重構(gòu)的過程中當(dāng)然會引入新的問題,但如果比較一下收益,比如組件化、工程化的引入,對后續(xù)維護、持續(xù)的用戶體驗優(yōu)化帶來的好處,還是值得這么做的。
***,jQuery 也并不是不能用了,它仍然是開發(fā)前端網(wǎng)頁的一個選擇,至于到底如何抉擇,則要看當(dāng)前場景是否適合了。