从0开始实现React系列之零(发刊词)

178 阅读2分钟

用React写了几个项目之后,一直有几个问题萦绕心头:

  • 什么是并发更新?
  • Hooks为什么要写在组件的开始,且不能被if包裹?
  • 明明已经调用setState了,为什么拿到的值不是最新的?
  • ...

所谓知其然,更要知其所以然,带着这些问题,我决定从React的源码中一窥究竟...

从github下载了最新版本的React,并开始了源码调试,很快就陷入到各种定义跟条件判断中,为什么要设计这种数据结构,此处为什么要做这种判断,为什么越多,大脑的抵抗就越强烈,太过于纠结细节问题,很容易分心停滞不前,把不懂的问题先放一边,又担心此为后续的基础,不搞懂更难前行。

经过尝试发现,这种自底向上的源码阅读,对我来说比较困难,所以决定换个思路,先从整体掌握React的设计理念,然后结合源码,针对重要的概念逐个击破。

先用React为关键词进行了一番搜索,并进一步确定了几个比较细化的关键词,fiber、hooks、合成事件、cocurrent render等等,针对每个关键词,都大致了解了下,这种技术有什么优缺点,为什么要用这种技术。

对基础概念有了一定了解后,源码调试轻松了一点,但依然还是不尽如人意,感觉似是而非,看来要想切底解决心中的疑问,还得亲自动手coding实现才行。

知道这个事情的难度,所以为了监督自己,就萌生了《从零开始实现React》这个系列,更为重要的是,希望通过这个系列,能够结识更多的同行人,如果你跟我一样,也有上述的困扰,希望能帮到你,如果你是已然走过疑惑丛林的大佬,希望能够留下宝贵的建议。