知乎問答:一年內的前端看不懂前端框架源碼怎么辦?以下是我的回答,閱讀量 1000+。現在轉載到微信公眾號中。鏈接:https://www.zhihu.com/question/350289336/answer/910970733
其他回答的已經很好了。
剛好最近在寫學習源碼整體架構系列,所以來回答下這個問題。先把 JS 基礎打好。比如至少作用域、原型鏈、異步等要掌握好。數組、字符串、正則、對象等 API 一定要熟練,不熟練也可以查閱 MDN[1]文檔,也可以看以下我推薦的文章熟悉一遍。【深度長文】JavaScript 數組所有 API 全解密[2]
JavaScript 字符串所有 API 全解密[3]
正則可以看這個《JavaScript 正則迷你書》[4]
對象 API 看我寫的這篇~JavaScript 對象所有 API 解析 | 若川的博客[5]
掌握 API 后,再掌握 new、call、apply、bind,JS 的繼承、JS 的 this 指向這些。關于這些,我寫了一個面試官問系列,可以看看。若川的知乎專欄[6]
有了以上這些基礎后,接下來就是先看相對簡單的 JS 庫或框架的源碼。比如 jQuery、underscore、lodash、axios 這些相對簡單的源碼。
怎么看源碼?
借助調試
可以調試后打包后的源代碼。也不用每個函數都知道是干嘛的,理清主線即可。
多搜索幾篇別人寫的高贊源碼文章,看別人文章,是站在巨人的肩膀上。
不懂的地方查閱,記錄下來。寫文章記錄下來,覺得寫的還不錯,發布出來。
經過一系列的學習。剛開始可能看的很慢,不懂的地方查閱,記錄下來,就是一種成長。這樣就會有一定的正反饋。越容易持續看完。到后期看著看著,會發現調試一遍,很多代碼都類似,很容易看懂,越學越快,越看越上癮,那說明成長很快。
最后總結原理
總結自己看完這個框架或者庫的原理是什么,跟網上資料對比,學為已用。
有一定成長后,再去看 vue、vuex、vue-router、react、react-router、react-redux 等更大型的框架或者庫的源碼。
也可以看我寫的學習源碼整體架構系列來學習,學習 vuex 源碼整體架構,打造屬于自己的狀態管理庫[7] 基本都寫了如何調試代碼,我就是按照上述流程來學習的。
我的博客可能閱讀體驗更好些。若川的博客[8]
如果最后發現,別人寫的源碼文章也不過如此,你也能寫,能寫得更好,那就是成長。
原創精選文章
工作一年后,我有些感悟(寫于2017年)
高考七年后、工作三年后的感悟
面試官問:JS的繼承
前端使用puppeteer 爬蟲生成《React.js 小書》PDF并合并
學習 jQuery 源碼整體架構,打造屬于自己的 js 類庫
學習underscore源碼整體架構,打造屬于自己的函數式編程類庫
學習 lodash 源碼整體架構,打造屬于自己的函數式編程類庫
學習 sentry 源碼整體架構,打造屬于自己的前端異常監控SDK
學習 vuex 源碼整體架構,打造屬于自己的狀態管理庫
微信公眾號交流
主要發布
前端 | PPT | 生活 | 效率
相關的文章,長按掃碼關注。歡迎加我微信lxchuan12
(注明來源,基本來者不拒),拉您進【前端視野交流群】,長期交流學習~
參考資料
[1]
MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript
[2]【深度長文】JavaScript數組所有API全解密: http://louiszhai.github.io/2017/04/28/array/
[3]JavaScript字符串所有API全解密: http://louiszhai.github.io/2016/01/12/js.String/
[4]《JavaScript正則迷你書》: https://juejin.im/post/59cc61176fb9a00a437b290b
[5]JavaScript 對象所有API解析 | 若川的博客: http://lxchuan12.github.io/js-object-api
[6]若川的知乎專欄: https://zhuanlan.zhihu.com/lxchuan12
[7]學習 vuex 源碼整體架構,打造屬于自己的狀態管理庫: https://zhuanlan.zhihu.com/p/92906380
[8]若川的博客: https://lxchuan12.cn/posts
由于公眾號限制外鏈,點擊閱讀原文,或許閱讀體驗更佳,覺得文章不錯,可以點個在看呀^_^