jquery怎麼樣才能算精通,有哪些高級視頻教程,有推薦的嗎?

jquery怎麼樣才能算精通,感覺學到了一定程度。。。不知道從何下手了!基本上看到一個效果不是太難,都可以自己寫出來!怎麼樣才能更進一步呢?


有哪些常用的jquery效果啊,?


能寫一個 jq 就算精通了。


謝邀……

其實挺搞不懂這個問題的,我也不懂怎樣算精通 jQuery,畢竟這不是個語言。

程序都是人寫的,一個類庫而已,本來就沒什麼難的,不要把這些東西神話了。

我覺得你從頭到尾把它的代碼讀一遍,全部讀懂了就可以算精通了。

有本書《jQuery技術內幕》,阿里的高雲寫的,可以帶你把代碼順一遍。

但是,即使今天你精通得不要不要的,明天人家出個第三版(其實已經在beta了),介面一變,你懂的。


你把基本上看到一個效果不是太難,都可以自己寫出來的這些jq效果,都拿原生的js再寫一遍,你就精通jq了。


首先你得理解jQuery架構吧,而要理解它的架構,你得對Javascript有深入的理解,比如 javascript傳統模塊化方法,Javascript直觀地理解原型鏈,Javascript原型鏈的建立機制,Javascript對象的原型與類的原型 etc. 然後就是懂得把邏輯在必要的時候封裝成jQuery插件,把別人的插件打開來按照自己的需要擴展,這是用jQuery最大的好處。


為什麼要精通JQuery?一個曾經壟斷市場,但又是明日黃花的工具?
我讀過一小部分JQuery代碼,說實話,我不覺得其中有什麼東西值得我們去精通,會用就可以了。

JQuery很大一部分代碼在做兼容性,OMG,什麼年代了,還要兼容IE全家和各種瀏覽器上的坑。

真正覺得其中有點用的,無外乎就是一些代碼封裝,鏈式調用,原型鏈,設計模式呀,不能再多了。
而這些知識,沒有必要去讀冗長的JQuery源碼,找本js高級教程也就差不多都懂了。

如果真的想提高自己的水平話,建議去看看ES6/7,去學習下react或者vue/angular2 學學web component思想和實現,搞清楚virtual dom原理是什麼,伺服器端渲染又是怎麼搞的

時代在發展,眼光要往前看,局限在自己的舒適區,可能就會被時代淘汰

-----------------------2017/2/9 21:06更新--------------------------

答案被踩太厲害,看樣子還有很多人堅持JQuery陣營。

還是給點實在建議

首先,看到這個問題第一點我就有點不理解,既然想精通jquery,為何要找視頻那?

當年大牛linus在社區上回答別人問題,很多時候第一句話就是 RTFSC (Read the fucking source code ),一切答案都在源代碼中,還要看什麼視頻。

然後,進來之後看到問題描述,我大概知道了,題主理解的精通和我理解的不太一樣。題主可能更想問的是怎麼用好jquery,這個問題其實就回到了如何學好前端上了。

其實答案很簡單,過去國外設計精良的網站去看看,想辦法自己實現下,玩的多了,自然就有所提升了。

點贊加關注,持續乾貨分享


個人覺得單人要寫一個jquery出來其實蠻難的,DOM中很多bug太奇怪。沒遇到過根本不知道會出現這些情況。從實現上來說,jquery本身並沒有什麼奇技淫巧。代碼結構也沒有什麼特別(當然,我也沒看過幾個框架和庫的源碼~)

我個人覺得兩點是jquery解決得比較好的:

1. 一個介面,封裝了所有的兼容問題。

2. 介面設計得很合理,起名也起得很好(當然也有可能抄了其他框架的介面命名)。

事件系統沒什麼說的,自己實現起來也不難。

Tween動畫也沒什麼好說的。

反而是jQuery.cache給我留下了比較深的印象。我是工商管理專業的,自學的這些亂七八糟的東西,看jquery源碼的時候,入行也才半年左右吧。對設計模式什麼的完全就是白瞎,所以看到這麼"機智"的設計,瞬間感覺戰鬥力提高五個點....

cache真的是個好東西啊~~~ 後面我在寫組件類的時候,基本上先寫個 this._cahce = {}....,特別是在多次從伺服器請求數據和大量dom操作的情況下,cache 能很大的提升性能。

吐槽一下jQuery吧:

1. 太方便,所以前端現在整體水平亂七八糟,阿貓阿狗都跑來做前端了,且給所有的人都留下了一個概念:前端入門容易啊,學計算機不知道從什麼地兒開始,就學前端吧....

2. 產生了大量的全局對象以及超長鏈式調用代碼,大多數人用jQuery是這樣用的:

$(".xx-class").on(t, fn).append(xx).attr(xx).css(xx).animate(xx)...

$(".xx-class").on(t, fn).append(xx).attr(xx).css(xx).animate(xx)...

$(".xx-class").on(t, fn).append(xx).attr(xx).css(xx).animate(xx)...

....

滿屏以上代碼撲面而來,無論是從性能上,還是可維護性上,都讓人有提刀找這人的衝動

3. 把初級前端的市場價格提高了很多。導致很多前端就在這裡停住不動了,也不學習了。我在廣州,來面試的,能背幾個jQuery API的再加上兩三年工作經驗的,他們開口都是10~15的...

另外不少人都在稱讚$.ajax,我個人覺得這恰恰是不太合理的地方,原因如下:

1. ajax實現太複雜,1.8.3版本的實現用了近400行...,裡面創建了 jqXHR 對象,引用了 jQuery.event,創建了 Deferred,檢測了一堆 requestHeader....,這麼複雜的實現也是醉了。這也是調用簡便帶來的內部複雜的結果。其實大多數時候,我們需要的只是一個很簡單的 ajax 請求。很多時候我都在懷疑我自己寫的那幾十行簡陋的ajax實現是不是有什麼bug,但是他又能好好的運行。直到我在reactjs的JSXTransformer中看到了獲取*.jsx文件的簡單ajax請求時,我才放心...

2. 將跨域這個比較重要的概念混淆在裡面了,讓初學者迷迷糊糊的就放過了很重要的知識點。

以前我一直說的(很多人也這樣說)「ajax跨域」。但事實上ajax本身是跨不了域的,$.ajax是通過jsonp來跨域。我一直沒有去了解這一塊,因為用$.ajax用得很順暢,以為這是一個原生API支持的東西。直到某一天遇到一個坑,才去翻了資料。查了大量關於跨域(jsonp, iframe, cors,form無刷新跨域提交,需要後端如何配合...)的資料,以及跨域的時候 requestHeader的值的限制。這一塊知識才算補了回來。

當然,作為一個框架來說,用起來越方便,就是越好的。

說了這麼多廢話,回答一下題主的問題:樓上已經有答案了,自己寫一個,就算精通了。

但是,精通一樣東西真的沒這麼容易,jQuery 前前後後迭代了多少個版本啊?沒有1000也有800了吧,流星器環境很複雜,精通jquery的本質是需要你精通瀏覽器環境(資源載入,性能優化,渲染原理,事件,HTMLElement,Node,Text,Event等一堆DOM下的構造函數...)

但是可以想辦法熟悉它,很熟的熟。

所以,開源碼吧!用一個API的時候,先去看看源碼是怎麼實現的。這也是我用框架的一貫習慣,先看大致實現,用入項目中後,又會遇到docs沒有說明白的情況,回頭再查實現,用熟悉了,就理一理架構,這樣就可以很熟悉了。

申明:我jQuery不熟(誠懇臉),所以不要問我太具體的東西,不然我也要去查源碼的~


讀過源碼,明白核心模塊的原理,API順手拈來,可以控制版本升級帶來的問題


都別鬧,一個庫,能做到用的時候不看文檔,就算精通了...

司機真的沒必要會造車...


試著把常用的東西做成插件


剛從圖書館借了本書,還沒讀。

但是書名是這樣的:


把jquery那些源代碼都讀懂,閉包什麼的在裡面的應用,sizzle引擎什麼的,jquery精髓多多啦

在學習中


在一個大項目中80%以上的邏輯使用了jquery就算精通了。大項目大概指2人年的項目吧。。。

我瞎說的


jq進階篇我覺得就是寫插件,對jq整體有個要求。 而且與其精通jq,不如精通js


沒看過源碼能算精通?沒看懂源碼能算精通?

jQuery源碼解析(架構與依賴模塊)

jQuery源碼解析(DOM與核心模塊)

好好理解,做點筆記~


先這效果,在做組件插件,再看源碼


推薦閱讀:

往頁面上插入一個script元素使用創建元素的方式或者document.write的方式有何區別?
想深入了解一下 jQuery 的源碼,但是覺得學習曲線有點陡峭,有沒什麼好的方法或者學習資源推薦?
通過w3school初步學習了html,css,js和jQ,自知自己對css,js,jQ的學習還不到位~該怎麼去提升?
後端渲染html、前端模板渲染html,jquery的html,各有什麼區別?

TAG:前端開發 | JavaScript | jQuery | jQuery插件 | 視頻教程 |