現在(2017年)是否還有必要學習jQuery?
入門前端一年,剛開始就用js原生開發網頁,最近幾個月學習了React和Vue,感覺到了他們的魅力,所有網頁都用他倆來開發。
現在糾結要不要學習jQuery呢?擔心學了jQuery之後會被淘汰……有人說要重視基礎,要學,畢竟是經典框架;有人說要看清趨勢,不學也行。搞不懂了小白真心誠問,見笑了。
不用糾結,當你要維護以前的項目就知道要學習jQuery了。
學jQuery不是因為「經典」,而是因為「有用」。
- 市場上大量的UX實現都是jQuery插件,bootstrap,materialize的JS插件部分依賴什麼?
- 很多時候用jQuery寫DOM操作代碼是最好的實現,不管你用Angular,React還是Vue
- 有相當多現存的項目是不會遷移到所謂現代框架的,因為沒有必要,你將來有可能需要維護這樣的項目
- 未來有相當多的項目是不會用所謂現代框架的,還是因為沒有必要,你將來有可能需要開發這些項目
除非你覺得以後」所有「的前端項目一定是基於框架的,那就不要學jQuery了,我認為事實遠非如此。那些極力鼓吹JS框架的人,借著社區炒作興風作浪,因為某個技術得勢的時候,他們知道怎麼鼓吹都不會錯。
有多少項目真是必須用Angular,Vue,React的?我們不妨誠實地想想,真的,誠實地 ...
其實有太多人是沒有框架根本做不了開發,基礎岌岌可危,也就剩下拿框架來說事兒了,框架幫你搞定一切事情嗎?遠遠不是,你要掌握的庫,也遠遠不止jQuery。
簡單答一下。看你要學習jquery的哪一方面了。
學習jquery的使用方法?艾克斯蔻斯密+黑人問號臉.jpg,這還用學?jquery api文檔幾分鐘看完你就能算幾分鐘學會jquery。
學習jquery的庫設計思路。這個很有必要,裡面很多小技巧以及代碼組織技巧,設計思路,對你的技術還是很有幫助的。比強嗑設計模式容易多了
為了學而學,反倒意義不大;我建議是,如果目前你掌握的東西能夠滿足你的日常工作且沒有什麼理由必須掌握jq(比如要接手一些舊項目,或者要開發一些適配低版本瀏覽器的項目),那你可以等到需要的時候再去研究。
事實上,很多時候我們都是用到了才去了解某樣事物,比如你的第一個vue項目肯定是沒有router也沒有vuex的,你的第一個react項目應該也不會立馬用上了redux,但是當你覺得你需要的時候,你就會去了解。
當然上面的例子不是很貼和這個主題,這個主題的核心是,在我已經了解了相關新技術的時候,我是否還有必要去學習舊技術?我的回答是,要的,但不是為了學而學,而是要有動機地學,就目前來看,如果要開發一些適配低版本瀏覽器的項目,jq依舊是不二之選!所以jq並不算舊,頂多算不新。另外,jq確實是作為經典的學習框架,有重大的學習意義,理解jq能做什麼,解決了什麼,它與現在流行的框架有什麼不同,是非常有必要的。看到有些評論說學會了開車還要學自行車嗎?單單就表面意思來回答,要的,自行車作為交通工具跟汽車又不是對立的,況且你可能沒什麼機會開車,或者你經常需要騎共享單車呢?其實前端現在知識很多,更新也快,新知識都學不及,我覺得這些「不那麼急」的事情,其實可以先放一放,等你需要了,再去研究就好。先說結論:jQuery還是有必要學的。
首先,我能理解題主的擔心,做技術的都希望自己學的東西可以有用武之地,不希望剛剛學會就過時了。而jQuery也註定會被淘汰,那為什麼還要學呢。
1. 雖然現在三大框架很火,但是市面jQuery仍然是主流,主流的東西一定有學習的必要。目前市面上90%以上的網站前端仍然還是用jQuery,如此大的基數,多了不敢說,至少三年之內絕對不會被淘汰。
2. 如果DOM那部分熟練的話,學jQuery也就是一天兩天,看看文檔的事兒,幾乎沒有學習成本,所以不用擔心浪費時間。
3. 如果想修鍊內功,學習jQuery源碼也不錯。
剛才說了,有必要學,現在來說說如何學。
jQuery火爆起來主要是因為:
1.解決了大量兼容問題(包括DOM操作的兼容,ajax的兼容等);
2.學習成本低;
3.縮減了編碼量(尤其是動畫那部分的封裝,真的很省代碼);
針對jQuery的特點,說說那些jQuery被淘汰的部分;
1. 瀏覽器逐漸趨於標準化,除了國企和事業單位,IE8的兼容問題幾乎可以忽略了,所以jQuery的兼容優勢,越來越弱。
2. 隨著瀏覽器的發展,css3越來越普及,那jQuery引以為傲的動畫優勢也越來越弱。
3. ajax這部分,總不會為了用$.ajax把整個jQuery引進來吧,還是用axios和jsonp輕便。
所以如果要單純想用jQuery,jQuery文檔裡面很多東西是不同學的,那麼學什麼?
1. 選擇器(學習成本零)
2.事件綁定(學習成本零)
3. DOM操作方法:元素的插入和刪除,屬性的修改這些方法(append,remove,attr,addClass,removeClass)
js基礎可以的話,上面的東西抽1個小時應該就差不多了,然後做一些小案例,比如選項卡呀,輪播圖啊,再然後,就等工作用了。
最後為題主補充一句,react和vue的思想和jQuery的思想完全不同,所以學習jQuery的時候,千萬不要帶著react和vue的思想學習。說一句不太嚴謹但是比較直白的解釋:jQuery是通過操作DOM來改變界面,react和vue是通過操作數據來改變DOM。所以從分工的角度來說:
jQuery:我們考慮如何操作DOM,jQuery考慮如何讓我們更方便地操作DOM
vue和React:我們考慮如何操作數據,框架考慮如何將改變後的數據更新到界面。
最後,希望我的回答能對題主有所幫助。
2017年,前端開發培訓還能走多遠? - 知乎專欄這個問題問完你是不是還會問現在有沒有必要學演算法與數據結構?
必須要學啊!!因為有些人…
你用來糾結的時間,已經夠學兩遍 jQuery 了。
有必要。
jQuery 的價值不算低。
1. 很多需求用 jQuery 實現挺方便
2. jQuery 的語法可以直接用在其他地方,比如爬蟲。實際上 Python 爬蟲很多人依然用非常低效的方式解析頁面,不直觀且容易出錯。換成 jQuery 語法會方便很多
3. DOM 從 jQuery 借鑒了一些 API 的設計。比如 querySelector,querySelectorAll,insertAdjacentHTML,closest 等
同時 jQuery 的學習成本非常低,翻閱官網的文檔跟著輸入例子就能立馬使用了。當然我覺得看書是一個更好的選項,jQuery基礎教程 (第4版) 是本不錯的書。
所以,一個價值不低但是學習成本很低的技術,當然有必要學習。
6 月 18 日更新:
在這個答案 如何入門 Python 爬蟲? - 知乎 中,提到了 jQuery 語法在爬蟲中的應用
謝邀 @斷穎淚下漣 。
現在糾結要不要學習jQuery呢?擔心學了jQuery之後會被淘汰……
學了 jQuery 怎麼會被淘汰?是 jQuery 被淘汰還是自己被淘汰?很顯然這兩個擔心都是多餘的。 jQuery 不會被淘汰,不是所有的網站都是 SPA;學了還能漲姿勢,自己更不會被淘汰。
有人說要重視基礎,要學,畢竟是經典框架;有人說要看清趨勢,不學也行。
基礎很重要,趨勢也很重要,學海無涯,精力有限,這確實是個問題。
我的看法是:ES,DOM,BOM基礎要打好,不管是通過學 jQuery 還是學 Zepto或者其他你覺得 OK 的方式;流行技術也要學好,這樣出去更容易吃到飯。
總之,每個人所處的環境不一樣,前端框架眾多,技術迭代飛快,不可能面面俱到,尤其是新手。不管別人怎麼說,你只需要把自己有限的精力投入到當前對你最有意義的技術上就好了。
如果你能熟練使用mac系統做編程開發和日常辦公,那麼你為什麼還要學習windows系統呢?什麼,你沒用過windows系統?windows系統還需要學?
當然需要了,不學windows系統我怎麼玩英雄聯盟啊。
不學jquery,我怎麼寫活動頁面啊,什麼jquery還要學?當然不需要了,因為我用windows玩英雄聯盟的時候也沒學windows啊,為什麼呢?
因為jquery設計的太好了,就像你寫熟練了原生js,看起jquery來,就像你用習慣了mac,突然給了你一個windows10,你敢說你不會嗎。
當然我就敢,因為我真沒用過win10。。。
有糾結JQuery到底學不學的時間,你早就應該可以大致了解它了。
很多人總是抱著十分『莊嚴肅穆』的精神學習編程語言和框架,好像不搞清楚每個細節就不能開始做項目一樣,這是不可取的。對我個人而言,從來沒有『正式』學習過jQury,只是掃了一眼基礎語法,然後就開始胡寫一氣,遇到問題在stackoverflow上找尋答案,然後慢慢一點點積累了一些jQuery的知識。
之前糾結還要不要學 prototype.js(有了jq這個就不流行了),有人說很值得學習,雖然過時;但是我至今沒有學過,o(╯□╰)o
等知乎回答的時候其實你已經可以把api看一遍了
有必要,不同技術是適應不同場景的,沒有一種技術能通吃所有場景。
以展示為主,必須SEO的網頁就不適合MVVM,相反用jQuery就很方便。
而且學習是由淺入深的,jQuery比較簡單,而Vue這樣的框架需要有一定的基礎。
推薦JavaScript一站式教程:jQuery / MVVM
要用就學,不用就不學
之前還看到有人招聘提 prototype.js 的,不知道怎麼想的
看一下jq的市場佔有率再說 再說jq不是前端的基礎技能嗎 又不難學
es6 剛剛開始流行的時候,加上 flexible layout 做了一個網站,沒想到UC和微信嚴重滯後,後來不得不ployfills往回補,試圖使用新特性的同時,拓展兼容性,最後,那堆代碼就變成了實現jQuery類似功能,但bug橫飛,連自己都不習慣用,十分尷尬的存在。
即便現在,瀏覽器擁抱新趨勢的態度,也參差不齊,就算Google的material lite deign,用了大量的CSS3,Js 還是用的es5,而且看起來並不比es6亂多少。
服務端的express ,hapi, mongodb,很多大受推崇的庫,依然也是用的es5.
jQuery除了它本身的效率性,它也是一本最好的教材,風靡了這麼多年,被大大小小的公司商用,早就錘鍊的滴水不漏,經過了完整的測試,也跳過了無數的坑。
如果能把它的代碼完完整整看幾遍,大部分網頁,大部分插件,都會毫無壓力,知道怎麼走,開拖拉機也好,開保時捷也罷,都能到達目的地。相反,保時捷也會掉溝里。
語言的新特性不是不好,只是太過追新,往往比較浮誇,就像一個人,箭頭表達式的this,沒有arguments沒搞清,promise 都沒摸到門道,就天天在那裡鼓搗怎麼配置babel。連一個最基本的登錄框都寫不定,就在那裡糾結怎麼搭建gulp。jQuery 的美你需要看哈源碼~js 很多精華在裡面~
公司不用就沒必要學,有的公司面試可能也會問
但工作真的沒用處了,簡單的網頁其實用vue比jquery方便
複雜的交互react和vue都沒問題,react那邊社區好一點
要說jquery還有哪點比現在的框架好,也就jquery ui了,新手編程能力差,直接拖插件
(補充一下吧,你要用依賴jquery的庫或者框架,那就沒辦法了,其它情況真的沒必要抱著老技術不放)
實際生產中已經完全淘汰jquery,目前辭職在家嘗試拿vue做點複雜的東西。所以放心吧,有問題就找我,找我也不會管你的(滑稽)
推薦閱讀:
※在Redux中,應該把邏輯放在action creator里,還是分散在reducer里?
※如何評價微軟開源的ReactXP?
※如何評價 Facebook開源的 YOGA?
※網上都說操作真實 DOM 慢,但測試結果卻比 React 更快,為什麼?
※2017 年底如何比較 Angular 4, React 16, Vue 2 的開發和運行速度?