每次都信誓旦旦的給本身立下要好好學習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目錄下一些重要代碼的理解。測試