查看原文
其他

知乎问答:一年内的前端看不懂前端框架源码怎么办?

若川视野 若川视野 2022-05-01

知乎问答:一年内的前端看不懂前端框架源码怎么办?以下是我的回答,阅读量 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 这些相对简单的源码。

怎么看源码?

  1. 借助调试

可以调试后打包后的源代码。也不用每个函数都知道是干嘛的,理清主线即可。

  1. 多搜索几篇别人写的高赞源码文章,看别人文章,是站在巨人的肩膀上。

  2. 不懂的地方查阅,记录下来。写文章记录下来,觉得写的还不错,发布出来。

经过一系列的学习。刚开始可能看的很慢,不懂的地方查阅,记录下来,就是一种成长。这样就会有一定的正反馈。越容易持续看完。到后期看着看着,会发现调试一遍,很多代码都类似,很容易看懂,越学越快,越看越上瘾,那说明成长很快。

  1. 最后总结原理

总结自己看完这个框架或者库的原理是什么,跟网上资料对比,学为已用。

有一定成长后,再去看 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

由于公众号限制外链,点击读原文,或许阅读体验更佳,觉得文章不错,可以点个在看呀^_^

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存