jQuery的成就
jQuery是一個(gè)偉大的庫(kù),
- 它解決了dom api兼容的問(wèn)題,使得dom操作更簡(jiǎn)便
- 它支持類(lèi)似css選擇器的方式來(lái)選擇組件
- 支持批量的操作數(shù)組中的元素,也叫隱式迭代
- 支持鏈?zhǔn)讲僮?,可以在一條語(yǔ)句中完成很復(fù)雜的邏輯
- 有易于使用的插件擴(kuò)展機(jī)制
- deffered的異步方案比promise更早。
等等。
jquery可以說(shuō)在dom操作領(lǐng)域做的很棒了,幾乎統(tǒng)治了一個(gè)時(shí)代,甚至影響了w3c,dom api中的querySelector就有jq的影子。
但是,如今使用jq的公司越來(lái)越少了,但這并不是說(shuō)在dom操作領(lǐng)域有更好地庫(kù),而是因?yàn)閙vvm的出現(xiàn)。
mvvm的出現(xiàn)
dom操作是業(yè)務(wù)無(wú)關(guān)的邏輯,不應(yīng)該出現(xiàn)在業(yè)務(wù)的代碼中,雖然使用jq簡(jiǎn)化了很多,但是代碼依然是難以維護(hù)和復(fù)用的,直到mvvm的出現(xiàn),把數(shù)據(jù)和視圖的綁定變成了自動(dòng)化的操作,進(jìn)而把dom操作從業(yè)務(wù)代碼中移除。業(yè)務(wù)代碼因此變得更加的純粹,也更容易復(fù)用。
技術(shù)的發(fā)展規(guī)律
其實(shí),技術(shù)的發(fā)展趨勢(shì)就是追求更高的復(fù)用性,更簡(jiǎn)便的業(yè)務(wù)代碼寫(xiě)法,所以最終都會(huì)要求跨平臺(tái)、都會(huì)徹底分離非業(yè)務(wù)邏輯。
jvm上的語(yǔ)言持續(xù)的火了10多年,java長(zhǎng)期霸占語(yǔ)言排行榜榜首,很大的原因就是因?yàn)閖vm的跨平臺(tái),這是技術(shù)發(fā)展的趨勢(shì),就像node的libuv平臺(tái)層、react的vdom、游戲引擎的多端打包等一樣,隨著各種端和平臺(tái)越來(lái)越多,跨平臺(tái)幾乎是對(duì)一個(gè)新技術(shù)基本的要求。
業(yè)務(wù)代碼應(yīng)該是純粹的,任何業(yè)務(wù)代碼都應(yīng)該獨(dú)立出去作為可復(fù)用資源而存在。比如dom操作的代碼很多時(shí)候是業(yè)務(wù)無(wú)關(guān)的,所以mvvm實(shí)現(xiàn)了自動(dòng)的綁定之后,逐漸的成為主流,jquery不符合這個(gè)趨勢(shì),所以也逐漸走向沒(méi)落。
jQuery的沒(méi)落
jQuery在dom操作領(lǐng)域已經(jīng)做得很好了,但是它不符合技術(shù)發(fā)展的一般規(guī)律,所以最終肯定是會(huì)被取代的,就像大潤(rùn)發(fā)戰(zhàn)勝了所有的對(duì)手,卻在互聯(lián)網(wǎng)時(shí)代被阿里收購(gòu)一樣。只是因?yàn)樗鍪虑榈姆绞讲皇亲罴训?,?duì)開(kāi)發(fā)效率和代碼復(fù)用性的追求最終導(dǎo)致了jquery的淘汰。
從jquery帝國(guó)一統(tǒng),到如今mvvm諸雄割據(jù),對(duì)效率和代碼復(fù)用性的要求對(duì)技術(shù)做出了選擇,順應(yīng)這個(gè)趨勢(shì)的技術(shù)才能長(zhǎng)盛不衰。
jQuery戰(zhàn)勝了dom操作領(lǐng)域的所有對(duì)手,只是輸給了時(shí)代。