前端為什麼棄用jQuery?有這六個原因

jQuery CSS 瀏覽器 動畫 GitHub 技術 小鄭搞碼事 2019-04-13

點擊右上方紅色按鈕關注“小鄭搞碼事”,每天都能學到知識,搞懂一個問題!

前端為什麼都不再使用jQuery?這個問題其實也非常好理解,首先,你得知道jQuery給我們解決了什麼問題。給我們帶來了什麼。有以下幾個方面

比如

1. 快速選取元素

2. 方便操作DOM元素的API

3. 各個瀏覽器之間完美的兼容性

4. 鏈式操作,動畫,AJAX等等

上面這些都jQuery帶給我們的優勢。之前,相對於原生API來說,確實給我們帶來了操作上便利。

那現在為什麼我們就慢慢不在使用jQuery了呢?我覺得有以下六個原因

一. 快速選擇元素無優勢

為什麼說快速選擇元素優勢了?現在有兩個API,只需傳入CSS選擇器形式的字符串,就可以匹配到預期的DOM節點。如下

前端為什麼棄用jQuery?有這六個原因

瀏覽器兼容上這兩個API也得到了很好的兼容

前端為什麼棄用jQuery?有這六個原因

再者,Vue中也是使用些API進行元素獲取的。所以說jQuery快速選擇DOM節點的優勢已經不存在了。

二. 方便操作DOMAPI有替代

對於操作DOM的API,如addClass removeClass等,原生API也有支持, classList,可能IE兼容不是太完美,但是最基本該實現的也都實現了。

三. CSS3動畫崛起

動畫就比較熟悉了,CSS3動畫技術已經是非常成熟,完全可以取代jQuery動畫,甚至更好的實現複雜動畫,兼容性也好,加上還有比較方便使用的動畫庫Animate.css,大家一定非常熟悉,所以jQuery動畫被取代已經很好理解了。

四. fetch/axios優於AJAX

現在原生JS實現fetchapi還是axios。都給我們提供了強大的ajax的能力,且axiox還有攔截器這個優勢。這相較而言,是jQuery的ajax確實已經無法相比的了。加體積也小很多。在IE上fetch也有了polyfill方案(github/fetch)。這樣就可以很方便的使用ajax,相對於jQuery就小巧很多。

五. 性能問題得到改善

關於性能問題,大家可以花點時間去很好的瞭解一下Virtual DOM(虛擬DOM)的概念,其實Virtual DOM就是相對真實現DOM節點來以最小變動來改變真實DOM。這只是一個思路,但jQuery在重繪,迴流方面確實存在一定影響性能的問題。至於如何改善DOM操作性能,需要好好研究每一步JS操作,甚至每一個樣式屬性的使用。

六. 框架對jQuery的影響

目前有各種框架已經被廣泛使用,比如React,Vue,Angular。這些都屬於MV*框架,特點都是以數據為核心,操作DOM的事都留給框架去做,這相對於jQuery來來說,開發效率高,代碼可維護性高,可擴展性高,性能更好。

再加上webpack打包(當然JQ也可以),腳手架的方便,新語法ES6/7的崛起,使得在編碼體驗上又上一個體驗檔次,所以函數式寫碼必然代替了命令式寫碼。

相關推薦

推薦中...