【Vue原理】Vue源碼閱讀總結大會 - 終

寫文章不容易,點個讚唄兄弟


專注 Vue 源碼分享,文章分爲白話版和 源碼版,白話版助於理解工作原理,源碼版助於瞭解內部詳情,讓我們一起學習吧
研究基於 Vue版本 【2.5.17】

如果你覺得排版難看,請點擊 下面鏈接 或者 拉到 下面關注公衆號也可以吧

【Vue原理】Vue源碼閱讀總結大會 - 終

終於啊終於啊,把 Vue 系列的文章發完了了,如釋重負的感jio啊,今天就打算總結下,我這段時間來的歷程和收穫,本文純吹水,沒有技術含量,各位客官權當娛樂消遣也無謂,來收集個表情包也是可以的

公衆號


學習源碼用時

花了3個多月讀源碼,花了六個月 寫文章,花了九個月發文章

耗時如下

從 2018 - 9 - 10 開始讀源碼

然後從 2018 - 12 - 5 開始寫文章

然後 2019 - 6 - 2 寫完所有文章

然後 2019 - 8 - 19 發完所有文章(也就是今天)

公衆號

我不是寫了就馬上發的,我寫完一篇文章之後,要等一段時間之後,再重新審覈一遍再發送,這樣一來,既可以發現遺漏的錯誤,也可能可以收穫不同的心得

你以爲這時間算長的了嗎??

其實如果只用晚上下班回去的時間寫的話......寫文章估計得用一年......我不僅內容追求簡單,可以讓我們在以後忘記的時候迅速撿回來,我還要追求排版好看(鱉跟我說難看好不嘍,我花了很多心思的哈哈),因爲我知道排版難看的文章一秒都不想愛看下去....

然後我爲什麼只用半年呢,我.....不好說....哈哈哈

公衆號

不過也算很長了,歷時這麼長,真的是非常難熬的,在 堅持和 放棄中 搖擺不定,57 篇文章真不是搞笑的啊,差點崩潰了

公衆號

幸好給自己定的獎勵,一路撐着我走到現在

比如寫完這個系列,我打算給自己買雙鞋子.....

咳咳,回到正題

閱讀源碼不難,難的是深度閱讀源碼

怎麼深度閱讀呢,就是自己先提前想好一堆問題,然後去源碼中找答案,不然一堆源碼擺在面前,是會懵逼的

而且當你發現你要解決一個問題的時候,通常你要先解決七八個問題,並且你會碰到好多盲區知識點,這就是最煩的地方

而寫文章是煩上加煩了,我不能囫圇吞棗啊,涉及的盲區知識統統都要去了解,所有附加的問題也統統要解決,因爲你要更加詳細的瞭解他的流程 並且 理解,沒得辦法的啊

公衆號

不要覺得邊看源碼然後隨便記個筆記就可以了,筆記是應付自己的,你覺得你會花多少精力去弄?

反正我覺得自己看源碼時做的筆記,都沒能怎麼幫助我寫文章,因爲偷懶沒怎麼用心去寫

所以更加堅定了我寫文章的信念,特麼的,寫的筆記都不想看,我特麼時間不是白花了嗎,源碼不是白看了嗎

公衆號


我是怎麼讀源碼

我看源碼測試,都是直接看一整個開發版的 Vue 文件,而我看網上很多人都是選擇看 Github 上 Vue 功能分類好的文件夾

我個人不太喜歡這樣,雖然每個文件都相比一整個文件簡短不少,功能分類好,但是文件太多,會徒增我的疲憊感和厭煩感

我直接看一個整個文件,直接script引入,有一種爬高山的感覺。直接征服一萬多行的代碼,爽得黑文

像上面那種,就是像爬很多座小山,個人感覺會累很多,有點煩

而且這樣方便我進行調試,相關內容可以看看

【Vue原理】學會調試Vue源碼


學習感悟

都不知道寫文章有多煩,耗費的時間和精力不是一般的多,比看源碼還要多

有時看源碼,基本弄懂一個流程就行了,根本不會細緻到每一個細節

因爲要寫文章,我必須精細到每一個細節,完整走一遍流程,生怕自己寫的東西不夠嚴謹(雖然可能也會有瑕疵)

有時明明已經寫到吐了,還是堅持完成目標,這真的是一個噁心的過程啊喂。

公衆號

有時真的想想這樣好煩啊,但是,我堅定一個信念

越使我煩躁的東西,越能使我強大

簡單的東西,大家都會,憑什麼你能更加優秀

難的東西,大家都不會,憑什麼你能更加優秀

那我想更加優秀,我就只能從煩入手了,因爲煩躁本身就已經幫我篩選過濾了一部分人

那麼只要我突破他,那我就可以領先這部分人

因爲本來就不是什麼很厲害的人,普普通通的程序猴子

你要做的就是去跨越那些煩躁的東西

難的東西你不行,煩躁的東西你還不肯去弄,你競爭個毛啊競,翻去執牛屎了

公衆號

這種煩躁的情緒在 寫 compile 的時候特別嚴重,因爲 compile 的源碼實在 是太多了,雖然已經是看過一遍並做了筆記,纔來寫的文章,仍然剛到很吃力,非常吃力

compile 的每一篇文章,大概都花幾天的才寫完的,最長的可能一個星期,並且在發之前還要審覈一天以確保正確性,而 compile 有多少篇文章呢?

嗯,有 9 篇,真的是傾注心血的,我覺得不會辜負看過的人

你問我爲什麼要分享

1、自己的想法難免有限,肯定會有漏掉的錯誤,別人可以發現指正你

2、分享自己的成果。一個人不停變好的人,也一定可以讓別人一起變好


學習收穫

讀源碼,個人感覺有什麼好處呢,簡單羅列幾點把

1、懂得很多項目細節的處理方法,比如對象合併,比如清空數組

2、更加熟悉這個框架,可以解決遇到的奇怪問題而不會乾着急(比如之前碰到的 computed 緩存)

3、學到很多新知識點(MessageChannel,shadow dom)

4、可以讓你重新認識舊知識(宏微任務)

5、怎麼寫出規範又好維護的代碼

6、可以看懂別人打包後的代碼(笑哭)

7、項目有些問題的處理思路,比如在 Diff 中有個函數,學會了怎麼在兩個數組中,匹配是否有相同項

在 Vue 源碼分享大會的開始,我們也有說過,可以看下

【Vue原理】Vue源碼閱讀總結大會 - 序


最後

我很害怕自己會寫錯東西,所以一直很小心翼翼地檢查文章,寫出一篇文章我不會馬上發表,而是等過一段時間再審查一遍,看是否有不通暢,不正確的地方

只能說我的能力有限吧,還是會難以避免地可能存在的錯誤

看了文章的童鞋,希望能對你們有所幫助

有錯誤的地方,也請勇於指出,我非常希望有人糾正我哈哈,我會有重酬的!

Vue 系列寫完之後,後面可能會更新一些 Vue 的番外篇,比如源碼中的一些小功能,但是現在估計會斷更一段時間,接着後面會發騰訊前端進階課程的心得

公衆號

公衆號

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章