研究js框架原始碼用處真的大麼?

時間 2021-05-05 15:30:08

1樓:StatisticCoder

如果只是為了做專案,說實話目前市面上任何乙個框架的API調熟了,上懟產品經理,下懟客戶就夠了。但是如果對於自身學習而言或者說需要自定義輪子的時候,讀別人的原始碼絕對是一種提高。這就相當於讀書時你明明這道題你選C肯定對,但是大神帶你把這道題思路捋了一遍,那種感覺很爽的,下次自己就可以舉一反三。

孔子就曾經說過:常在git走哪有不造輪。熟讀原始碼三百篇,不會寫碼也會抄。

不過話又說回來了,每次看大神原始碼之後有種功力大增,仰天感嘆:程式設計師沒有輪子跟鹹魚有什麼區別?PM跑來打斷:那個死跑龍套的,新活,兩周poc。

扒幾口盒飯,繼續搬磚咯。

2樓:sunny

重點在於你希望從原始碼中獲得什麼,如果只想要熟練使用,沒有更高的需求,那麼,看看文件,能夠滿足實際需求即可。如果想學習其中的實現方法,思想,可以借鑑學習。

很多碼農都想有自己的庫,學習這些原始碼,以後完成自己的庫的時候可以參考,有什麼好的思路可以借鑑。

當然,如果可以很好地理解,在用這些庫的過程中出現問題,也可以更好的解決。

3樓:胡小羊

作為閱讀原始碼的狂熱分子,強烈建議通過閱讀原始碼的方式來達到精通的目的。

但並不能盲目的閱讀,必須行知有效,如果從沒用過 jquery, 上來就看 jquery 的原始碼,只能說自討沒趣。

回到正題,閱讀原始碼到底是否值得,我的答案是肯定的,如果不了解其設計思路、架構原理、實現細節,那麼永遠不能說精通,最多只能是熟練。但通過學習其原始碼,並能夠造個輪子,那麼在看待與之相關的問題時,你將會看到更多的東西,懂得更多,也能創造出更多。

另外一點想說明的是,js 開源的庫或框架大多數都不足兩千行,多也不過萬行,如果方法得當,其實學習的成本也不會很大。

以 vue (不了解的自行檢視相關文件)為例,官網介紹,它是乙個資料響應驅動的前端框架,具有非常簡潔的 API,你可以通過簡單的學習就能夠入手,並經過一段時間的專案實戰,基本就能玩得很溜。那麼你可以說自己精通 vue 了嗎?

* vue 的 dom 更新最小單元是什麼?

* vue 的 dom 更新是同步還是非同步?

* 有遇到過命名衝突的問題嗎?

* 是否 data 中的資料都是響應式的,data 中的資料發生了變化都會觸發檢視更新嗎?

* 對於列表迴圈為什麼要設 key值?其作用是什麼?

* 陣列為什麼不能直接通過索引操作,更改陣列的元素後並重新賦值給它與直接更改陣列元素的值渲染效能有什麼不同嗎?

* 什麼功能用自定義指令更好而不是自定義元件?

如果沒有深入的去了解其原始碼的話,恐怕是不能給出確定的答案的,所以說行之有效的原始碼學習是非常值得的。

4樓:小擼

從問題著手看原始碼意義大一些,如果你是老司機,帶著思想按理解一塊一塊看是可以的。我嘗試過,一次看不了太多,拆分了慢慢看更好點,還有要知道為什麼這麼寫,而不是這樣寫的表面意思。

5樓:wqb2017

說一下個人觀點吧,其實鄙人是覺得很重要的,為什麼呢?乙個是很多框架都是至於原生寫的,所以很多原理性的東西對於技術了解或者是個人發展來說是非常重要的,不但鍛鍊你的邏輯能力,還鍛鍊你的思維方式,簡單說是讓你知道這東西是怎麼來的,有一天也許你們要做類似東西時有乙個參考。因為很多東西對你來說可能是不合適業務發展的,這時候自己寫乙個東西就顯得特別重要了。

6樓:阿安

這個問題,要看在什麼場景下。我們經常講技術有廣度和深度兩個維度。廣度決定你的技術視野,深度決定你解決問題的效率。

顯然,研究原始碼,是一種提公升技術深度的手段。在廣度足夠的情況下,遇到了問題,而且這問題不能通過查文件,搜尋等方式解決的,並且你需要弄清問題的原理性知識的時候,就需要通過閱讀文件來解決。對於問題本身,可能覺得價效比不高,但是對於提公升自己的技術深度來說,是非常有用的,以後遇到類似的問題,可以非常快速的定位問題的根源所在,知其然和其所以然。

所以,閱讀原始碼,最好帶著問題去閱讀,否則會覺得很枯燥,價效比不高。

7樓:詹森先生

重要。但是是乙個循序漸進的過程。不是一上來就擼原始碼的。

正確的順序是,先是js基礎,框架的理念學習,框架按照最佳正規化熟練使用,大量的專案實踐,專案開發效率構建流程優化,然後才是通讀原始碼,從而進行專案效能優化,提公升debug能力,技術重構。

以你在學習的angular為例

1.你要先學習ng的雙向繫結開發模式,mvvm架構理念。

2.框架使用規範。合理使用依賴注入實現模組化中,service,factory等的正確使用場景,如何實現元件化,如何實現良好的解耦分治資料隔離。

3.提公升開發效率。提公升directive復用率,使業務邏輯更加清晰,提公升構建速度 ,版本管理,多人合作管理。

4.通讀原始碼。理解dirtycheck,知道為什麼單頁繫結數量不應該超過2000個,知道要用once來優化。

知道ng依賴注入的實現方式,從知道為什麼某些情況下使用uglify會產生問題。原始碼不要求通讀與背誦,原始碼的理解服務於專案。

5.發現ng過時了,開始看react和vue...然後重構。。。

8樓:拂曉

讀原始碼這事沒有什麼正規化,最終能收穫多少可能受到很多因素影響,原始碼好不好讀,思路跟你合不合,你的知識儲備夠不夠,如果一切具備的話,收穫會很多,一些小技法或者一些解題思路,還是挺珍貴的。

就像讀一本好書一樣,你可能得到作者深思熟慮後的思想結晶,也可能沒讀懂,或者不不屑一顧,或者乾脆知難而退,選乙個合適的level其實很重要。

9樓:緋色流火

在基本功紮實的情況下。

先去用熟那個框架,了解那個框架的特性,適合解決的問題,順便去看看一些大牛對這些框架的看法。

之後從這個框架最核心的api和特性開始分析,慢慢了解其實現原理。到這一階段開始有針對的閱讀不同模組的原始碼(不用太急,分模組看)。

剛畢業不久,前段時間也在研究一些框架和類庫的原始碼,以上算是我自己讀一些框架的過程心得吧。

10樓:

如果隨便拿起乙個框架,你做不到迅速熟練應用它的api,那你會看不懂原始碼的!

話說,如果能做到隨便拿起乙個框架就能迅速上手,也不會問這個問題了。。

純js和框架(如vue,react,angular)哪個更值得作為工作的方向?

左華棟 如果在國內想有長期發展,建議 angular 以後可以了解了解 nest.js 做後端,甚至還可以平滑過渡到 spring 但如果只想盡快找個工作,國內vue 國外 react 已登出 因為virtual dom已經被標準採用了,所以將來像這三個框架這樣使用virtual dom進行渲染的做...

哪些JS框架和庫最有發展前途?

dboy 2018.3 目前來看是React應用最廣,學React的人最多,競爭要激烈一點。但很多時候競爭產生的邊際求職難度沒有想象的大。國內Vue次之,Angular 2 使用者群最小,規模都比不上React,但都有忠實使用者群。React JS,Angular Vue JS上手與比較市場還是膨脹...

js當中,window localStorage和localStorage兩種呼叫寫法有什麼區別?

朱涵俊 如果localStorage不存在,window.localStorage不會異常,返回undefined 而localStorage會異常,使用不存在的變數。如果window.localStorage有值,效果一樣。比如你可以判斷 if window.localStorage 來判斷是否支...