知乎问答:一年内的前端看不懂前端框架源码怎么办?以下是我的回答,阅读量 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
由于公众号限制外链,点击阅读原文,或许阅读体验更佳,觉得文章不错,可以点个在看呀^_^