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