摘要:前言前幾天知乎上有一個(gè)問題真的過時(shí)了嗎我的答案是確實(shí)過時(shí)了感覺這個(gè)話題挺有趣,那咱們展開了聊聊。詳細(xì)地說一下為什么過時(shí)了。天貓去年已經(jīng)宣布不再支持。三并沒有被淘汰雖然已經(jīng)過時(shí)了,但是并沒有被淘汰,而且近幾年也不會(huì)。
前言
前幾天知乎上有一個(gè)問題:jQuery真的過時(shí)了嗎?我的答案是:jQuery確實(shí)過時(shí)了!感覺這個(gè)話題挺有趣,那咱們展開了聊聊。詳細(xì)地說一下jQuery為什么過時(shí)了。
一、jQuery解決了哪些痛點(diǎn)討論一個(gè)庫或者框架是否過時(shí),應(yīng)該先看看它解決了哪些問題,這些問題現(xiàn)在是否有更好的解決方案。
jQuery解決了哪些問題呢?
瀏覽器兼容問題
IE678橫行的年代,瀏覽器兼容問題是前端小伙伴們必須掌握的技能,IE6有哪些bug,這得倒背如流。IE不識(shí)別哪些標(biāo)準(zhǔn)的JavaScript方法和對(duì)象,這也得記住,寫個(gè)ajax,別人都用XMLHttpRequest,到IE就得用ActiveXObject。苦逼的前端程序員不能專心研究技術(shù),只能天天為瀏覽器廠商擦屁股。直到j(luò)Query的出現(xiàn),大家解脫了,DOM操作也好,事件綁定也好,ajax也好,jQuery為我們封裝了兼容各個(gè)瀏覽器的方法,感覺整個(gè)世界都和平了。
選擇器
沒有jQuery,我們要用getElementById、getElementsByTagName這些方法獲取DOM對(duì)象。為列表所有元素綁定事件,要么事件委托,要么遍歷所有元素。為了搞定操蛋的DOM接口,我們掌握了各種奇淫技巧,其實(shí)毛用沒有。有了jQuery,我們可以用css選擇器獲取元素,綁定事件也不在需要遍歷元素列表了,整個(gè)人都清爽了。
動(dòng)畫效果
我清晰地記得第一次用計(jì)時(shí)器寫動(dòng)畫,如何讓一個(gè)元素動(dòng)起來,再如何讓它停止運(yùn)動(dòng)。調(diào)試完,無bug,這就用了一堆代碼了,更不用說做一個(gè)完整的頁面效果,想想就讓人崩潰。在看看jQuery為我們提供的動(dòng)畫效果,簡(jiǎn)直不敢想象沒有jQuery,我們?nèi)绾卧贗E678里面實(shí)現(xiàn)我們想要的效果。
總結(jié)
jQuery解決的痛點(diǎn)還遠(yuǎn)不止這些:它的DOM操作,樣式操作,屬性操作,事件綁定,還有遍歷,表單序列化,ajax封裝,這些功能給前端開發(fā)帶入了一個(gè)嶄新的世界。一直到今天,jQuery仍然是被前端開發(fā)者使用最多的庫,沒有之一!
二、替代jQuery的解決方案jQuery給前端帶來的影響是空前的,但是隨著前端的發(fā)展,jQuery也進(jìn)入了一個(gè)過時(shí)的狀態(tài),它為我們解決的痛點(diǎn)都已經(jīng)有了替代方案。
瀏覽器兼容
瀏覽器的兼容問題越來越不是問題,IE6可以說已經(jīng)被淘汰了(目前只有大型國企、事業(yè)單位、機(jī)關(guān)部門還有醫(yī)院中的XP系統(tǒng)還保留著IE6,但是也開始逐步淘汰中)。天貓去年已經(jīng)宣布不再支持IE8。雖然瀏覽器兼容問題仍然存在,但是已經(jīng)不是當(dāng)年那個(gè)坑翻天的時(shí)代了。
選擇器
CSS3新增了大量選擇器,操作樣式,想怎么找就怎么找,不必麻煩jQuery。
原生的JavaScript也新增了querySelector和querySelectorAll方法,可以直接通過css選擇器獲取元素。
動(dòng)畫效果
css3提供了豐富的過渡和動(dòng)畫效果,讓我們不再依賴jQuery。
ajax
fetch和axios這些第三方模塊已經(jīng)將ajax封裝得相當(dāng)出色了,我們?cè)僖膊挥脼榱艘粋€(gè)$.ajax就引入jQuery。
DOM操作和事件綁定
拋開動(dòng)畫的問題,剩下主要就是數(shù)據(jù)的增刪改,這種操作用jQuery,不管從性能的角度,還是易于開發(fā)和維護(hù)的角度來看,mvvm框架都要超jQuery很多。
組件化和模塊化
組件化和模塊化的開發(fā)是現(xiàn)在前端開發(fā)的主流,優(yōu)點(diǎn)簡(jiǎn)單的說就是易于開發(fā)、易于維護(hù)、易于團(tuán)隊(duì)分工。
jQuery是可以組件化開發(fā)的,但是用jQuery寫組件,就用兩個(gè)字形容:蛋疼,誰用誰知道。
模塊化不管是用ES2015也好(import,export),用webpack也好(require,module.exports),再不行,咱們復(fù)古有點(diǎn)用require.js或者sea.js,這顯然和jQuery都沒什么關(guān)系
綜上所述
jQuery所有的優(yōu)點(diǎn)都有更優(yōu)秀的解決方案,可以肯定的說,jQuery已經(jīng)過時(shí)了!
(如果貴公司要求兼容IE678,那就另當(dāng)別論了。)
三、jQuery并沒有被淘汰jQuery雖然已經(jīng)過時(shí)了,但是并沒有被淘汰,而且近幾年也不會(huì)。
現(xiàn)在市面上的大部分網(wǎng)站和應(yīng)用還是基于jQuery,在此后的幾年,他們?nèi)匀恍枰胘Query維護(hù)。
很多公司沒有專職的前端開發(fā),他們的前端工作由后臺(tái)負(fù)責(zé),這些人更喜歡用jQuery加后臺(tái)模板的工作模式。
部分兩三年以上工作經(jīng)驗(yàn)的前端開發(fā),他們安于現(xiàn)狀,排斥css3新特性,也沒耐心學(xué)習(xí)mvvm框架,jQuery仍是他們的主要工具。
IE678并沒有消失,所以jQuery仍有用武之地。
jQuery易于上手,仍然很適合做一些簡(jiǎn)單的網(wǎng)站。
綜上所述,jQuery并沒有被淘汰,仍然是新人必須技能之一。
四、總結(jié)jQuery雖然過時(shí)了,但是jQuery仍然是前端開發(fā)的必備技能,對(duì)于一個(gè)前端新人,這個(gè)坑一定得踩。
五、尾聲如果您覺得有收獲,請(qǐng)不要吝惜一個(gè)小小的【贊】,如果喜歡類似的文章,可以關(guān)注微信公眾號(hào):【曉舟報(bào)告】,第一時(shí)間獲取文章。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/89941.html
摘要:我們不能迷失在各種新技術(shù)里,主要我們就會(huì)把簡(jiǎn)單的問題度復(fù)雜化了,會(huì)把我們的前端變的很復(fù)雜。我們的代碼變得怪異難懂我不知道從什么時(shí)候,前端的代碼寫的越難懂就越能顯示水平。 前端發(fā)展了也有些年頭了,曾記得很多年前,聊起前端,都覺得是很簡(jiǎn)單,那個(gè)時(shí)候都沒有前端工程師這個(gè)職位。可現(xiàn)在,前端已經(jīng)逆襲了,已經(jīng)不是原來的樣子 了,各種技術(shù)層出不窮,顯的越來越高深莫測(cè)了。前端真的變得那么難了嗎?在我看...
摘要:我們不能迷失在各種新技術(shù)里,主要我們就會(huì)把簡(jiǎn)單的問題度復(fù)雜化了,會(huì)把我們的前端變的很復(fù)雜。我們的代碼變得怪異難懂我不知道從什么時(shí)候,前端的代碼寫的越難懂就越能顯示水平。 前端發(fā)展了也有些年頭了,曾記得很多年前,聊起前端,都覺得是很簡(jiǎn)單,那個(gè)時(shí)候都沒有前端工程師這個(gè)職位。可現(xiàn)在,前端已經(jīng)逆襲了,已經(jīng)不是原來的樣子 了,各種技術(shù)層出不窮,顯的越來越高深莫測(cè)了。前端真的變得那么難了嗎?在我看...
摘要:我們不能迷失在各種新技術(shù)里,主要我們就會(huì)把簡(jiǎn)單的問題度復(fù)雜化了,會(huì)把我們的前端變的很復(fù)雜。我們的代碼變得怪異難懂我不知道從什么時(shí)候,前端的代碼寫的越難懂就越能顯示水平。 前端發(fā)展了也有些年頭了,曾記得很多年前,聊起前端,都覺得是很簡(jiǎn)單,那個(gè)時(shí)候都沒有前端工程師這個(gè)職位。可現(xiàn)在,前端已經(jīng)逆襲了,已經(jīng)不是原來的樣子了,各種技術(shù)層出不窮,顯的越來越高深莫測(cè)了。前端真的變得那么難了嗎?在我看來...
閱讀 1048·2021-11-22 15:33
閱讀 3357·2021-11-08 13:20
閱讀 1368·2021-09-22 10:55
閱讀 2053·2019-08-29 11:08
閱讀 771·2019-08-26 12:24
閱讀 3068·2019-08-23 17:15
閱讀 2225·2019-08-23 16:12
閱讀 1933·2019-08-23 16:09