新手也能寫(xiě)得懂的源碼分析教程當(dāng)您翻開(kāi)此書(shū)時(shí),就決定要跟著我一起手寫(xiě)源碼。市面上的很多 Vue相關(guān)的技術(shù)書(shū),要么想看看不懂,要么看得懂其實(shí)沒(méi)必要看。我希望這本書(shū),可以讓想看的人能看懂,能學(xué)會(huì),能自己寫(xiě)?吹枚娜,可以提問(wèn)題,體會(huì)一下破
案的樂(lè)趣,那就完美了。
這本書(shū)適合初級(jí)、中級(jí)前端開(kāi)發(fā)者學(xué)習(xí) Vue2源碼,書(shū)里會(huì)逐行、逐句、逐詞、逐字地帶您手寫(xiě) Vue2源碼,簡(jiǎn)化復(fù)雜的源碼體系,抽出核心流程用來(lái)手寫(xiě)實(shí)現(xiàn)。在教會(huì)您手寫(xiě)核心源碼的同時(shí),也會(huì)帶領(lǐng)您梳理源碼,雙管齊下,讓讀懂源碼不再是翻不過(guò)的山。如果您是前端新人,想要學(xué) Vue2源碼但又不知從何入手,我相信這本書(shū)是您跨過(guò)門(mén)檻的墊腳石。如果您是初級(jí)、中級(jí)前端開(kāi)發(fā)者,用了一段時(shí)間 Vue2,但是想要學(xué)又不知道怎么學(xué)源碼,我相信這本書(shū)是您的不二之選。如果您是前端大神,想要找找 BUG,體會(huì)破案的樂(lè)趣,那么這里絕對(duì)是您火眼金睛的試煉場(chǎng)。
希望您是那位有毅力跟著書(shū)中的文字去窺視 Vue世界的人。
這本書(shū),獻(xiàn)給那些普通又不甘于平庸的前端coder。
按照慣例這是一個(gè)序
想了好久,不知道怎么開(kāi)這個(gè)頭,連第一句話要怎么說(shuō)都沒(méi)想好。剛好,就用我現(xiàn)在的忐忑和扭捏的心情作為這本書(shū)最開(kāi)始的序言吧。說(shuō)真的,從來(lái)都沒(méi)想過(guò)自己也會(huì)有出書(shū)的一天,雖然說(shuō)出書(shū)并不難,但是想要寫(xiě)好一本書(shū)卻并不容易,尤其是技術(shù)類(lèi)書(shū)籍;也著實(shí)怕寫(xiě)了出來(lái),誤人子弟,這就是忐忑的緣由了。
作為搞技術(shù)并且想要搞好技術(shù)的人,在前端領(lǐng)域摸爬滾打了多年,雖無(wú)頂尖的視角,但是也有了些許的經(jīng)驗(yàn),總是想要把自己的理解和認(rèn)識(shí)分享給正在路上攀登的奮斗者,希望大家可以少走一點(diǎn)彎路,那么假如這本書(shū)能給大家哪怕一絲的感悟和進(jìn)步,我就十分欣喜了。我工作的這些年,一直有寫(xiě)博客的習(xí)慣,再加上前段時(shí)間一直在學(xué)珠峰的前端架構(gòu)課程,所以,就想把自己在學(xué)習(xí) Vue2源碼過(guò)程中的感悟和理解,以及一些思路分享給大家,一起學(xué)習(xí)、進(jìn)步。
說(shuō)說(shuō)這本書(shū)吧,本書(shū)是關(guān)于 Vue2源碼分析的書(shū),好吧,這等于沒(méi)說(shuō)。但是我覺(jué)得這本書(shū)全篇所講的東西與 Vue無(wú)關(guān),講的都是JavaScript本身,以及算法、模式。那么我相信您肯定會(huì)問(wèn),Vue3都出了這么久了,市面上 Vue2分析的書(shū)也那么多,這本書(shū)有什么優(yōu)點(diǎn)? 我的答案是:這本書(shū)不僅講源碼,更是在寫(xiě)源碼。很多人一聽(tīng)到源碼,就會(huì)感覺(jué)十分高端和遙遠(yuǎn),可能會(huì)問(wèn):我才工作一年,能看得懂源碼嗎?在回答這個(gè)問(wèn)題之前,我們先簡(jiǎn)單分析下,源碼是什么? 源碼說(shuō)到底不過(guò)就是人寫(xiě)的代碼。既然是人寫(xiě)的代碼,那有什么看不懂的呢? 其中無(wú)非就是:點(diǎn)(某些 API的使用)、線(某些邏輯線的梳理)以及由點(diǎn)和線拼成的面所形成的結(jié)果。那么本書(shū)中遇到復(fù)雜的點(diǎn),比如 ES6的有些高階 API,比如原型鏈等,Vue的核心邏輯線:響應(yīng)式原理、生命周期、依賴收集等,編者都會(huì)帶大家深入地去書(shū)寫(xiě)、學(xué)習(xí)和理解。所以,讀完本書(shū),您不僅可了解 Vue知識(shí),還可掌撐真正構(gòu)建 Vue的底層核心內(nèi)容。學(xué)到的也不僅僅是 Vue的用法和原理,還有對(duì)JavaScript,甚至是對(duì)于編程語(yǔ)言的深入解析。
您可能會(huì)問(wèn),學(xué)完了這本書(shū),能達(dá)到什么水平? 我覺(jué)得你學(xué)完這本書(shū),算是入門(mén)了。沒(méi)錯(cuò),就是入門(mén),這本書(shū)能讓您領(lǐng)略源碼的風(fēng)采,不再需要依賴于什么博客文章、什么大神指導(dǎo),僅此而已。
另外,其實(shí)對(duì)于像 Vue、React等這樣的大型前端框架,源碼可以分為兩部分:構(gòu)建和應(yīng)用。這兩個(gè)詞簡(jiǎn)單理解,就是一部分代碼是用來(lái)打包、壓縮我們運(yùn)行時(shí)的代碼的,另外一部分就是應(yīng)用代碼本身。本書(shū)僅會(huì)關(guān)注應(yīng)用部分的源碼,而不會(huì)詳細(xì)分析 Vue的打包構(gòu)建。一方面是因?yàn)楸救四芰τ邢?另外一方面是因?yàn)榇虬鼧?gòu)建這個(gè)話題有點(diǎn)大,我實(shí)在沒(méi)想好要怎么說(shuō)。
好了,跟著我手摸手一起走進(jìn) Vue2的世界吧!
編 者