每次都信誓旦旦的给本身立下要好好学习react源码的flag,结果都是由于某个地方卡住了,或是其余缘由没看多少就放弃了。此次又给本身立个flag-坚持看完react
源码。为了敦促本身,特开设这样一个专栏来记录本身的学习历程,这意味着这个专栏的文章质量并不高,你能够拿来参考参考,切莫全信,我不想误人子弟,后面要是学有所成再考虑产出些好点的文章。 要是发现文章中有什么不当之处,欢迎批评交流。我看的源码版本是16.8.2
。
为了看react源码,我查找了很多资料,这里推荐两个参考资料,我的以为写得不错。react
15.6.2
的, 在react16
里面一些方法找不到了。最初打开源码看我是很是迷茫的,不知道该从哪里看起,不知道如何看,后来通过一番折腾终于找到了本身看react源码的思路,分享出来供参考。json
通常看一个开源项目,我会在package.json
中找到main
字段,从而找到入口,再顺藤摸瓜去看,可是react
的源码的package.json
中并无main
字段。因此经过这样找入口的方式行不通。dom
既然找不到入口那就从熟悉的看,打开packages
目录,发现其中有个react
目录和react-dom目录是本身比较熟悉的,猜测平时所用的import React from 'react'
以及import ReactDOM from 'react-dom'
应该就是分别导入的这两个目录下边的东西。初看代码发现确实是这样的,在react
目录能够找到PureComponent
,Component
,createRef
等经常使用的东西,在react-dom
中也找到了render
方法。工具
找到了该看什么接下来是肯定如何看,我尝试过去用项目里边配好的单元测试工具jest
去跑代码打断点,可是后来发现并无这种必要,一方面效率不高,另外一方面只要分析的没有太大问题都会按预期走,没有必要都验证。因此后面都是直接看代码不去跑代码验证了。单元测试
总结下看react源码的思路。学习
Component
,ReactElement
,render
方法等,比较新的像hooks
就能够先不看。下一篇文章将介绍我对react目录下一些重要代码的理解。测试