GitHub 網站移除 Jquery
1
微軟 GitHub 聯姻
我們知道 GitHub 嫁給微軟以後,GitHub 網頁就出來了一個嶄新的 Logo
這種神替換速度就是赤裸裸的告訴大家 GitHub 是我的了,言歸正傳吧
2
被遺棄的 Jquery
就在昨天 Mislav Marohni? 在 twitter 發表了如下信息
大概意思是說 GitHub 網站在重構的時候把 Jquery 從前端中去除了,並且沒有使用任何框架去替代它「使用原生 JS」,是如何做的呢?
使用 querySelectorAll 來查詢 DOM 節點
使用 fetch 來代替 ajax
事件處理使用的事件代理
使用 polyfill 標準化了一些 DOM
使用了眾多的自定義元素
看過我 vue 網路的朋友都知道 Fetch 對瀏覽器支持不是很「IE壓根不支持,我們來看一下」
其中紅色表示不支持,綠色表示支持,我們可以看到 fetch 不支持 IE 等一些瀏覽器,fetch 是基於 XHR 封裝的「什麼是 XHR Vue 網路的時候說過,點擊此處可以查看」,但是此處的 fetch 是 Github 根據 fetch 標準實現的一個 polyfill 「不是純的 window.fetch」 ,它支持到 IE10+,如果還想兼容到 IE8+ 那麼就要使用「Promise 的 polyfill,fetch 不支持 IE 就是由於 Promise 對 IE 支持的不友好」,我們可以看 fetch polyfill 的 介紹
3
GitHub 貢獻幾個源碼
根據 muan「也是 GitHub 的名 web 開發者」發布的消息,GitHub 把 fetch(polyfill) 和 Delegated events、Custom Elements 也早都開源出去了「就是有了這些經驗才去重構 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
4
如何選擇
早些時候聽過一個哥們說過,Jquery 早已放在他們技術棧的底層了「也就是說不會再用了」,Jquery 確實把 JS 封裝的非常簡單好用,但是隨著技術的發展,Jquery 正在逐漸退出它的歷史舞台「現在主流的庫都是以數據驅動,而 Jquery 是以事件驅動來操作 DOM 的」,像 Vue、React 這些 MVVM 框架 DOM 操作都讓底層實現了,用戶壓根不用關心「用戶唯一關心的就是數據,我們應該把重點放在業務和交互上,而不是去頻繁去操作 DOM」
那麼我們該如何選擇呢?我們應該有擁抱新技術的心態,如果有新的項目或是新的模塊開發「那麼恭喜你」,那就直接上新的框架「不要再用 Jquery 了,AJAX 也不要用了,回調地域真是苦逼,直接上基於 Promise 的實現方式吧」,而對於老的項目已經在使用 Jquery 了「除非你有充足的重構時間,否則最好不要去動—重構兼容可能會導致很多 bug」
5
結論
還是那句話,離開業務和使用場景談技術都是耍流氓,擁抱變化,根據現有的業務和產品選擇適合自己的技術才是最重要的
更多文章等著你,歡迎關注我的公號


TAG:TigerChain |