前言
本文主要是總結(jié)在Core目錄下出來的Vue在其實(shí)例vm玉锌,原型Vue.prototype,構(gòu)造函數(shù)Vue上屬性方法的變更情況,其中樹形圖從左到右為路徑/
基礎(chǔ)知識(shí)
vue不但可以在web瀏覽器上運(yùn)行泌类,也可以在移動(dòng)端運(yùn)行,移動(dòng)端也就是weex版本底燎,兩者區(qū)別如下圖
在web上可以分為兩個(gè)版本刃榨,runtime only版本和runtime+compiler版本弹砚,區(qū)別是后者帶有模板編譯器,也就是可以將template模板編寫html轉(zhuǎn)換成render函數(shù)枢希,而前者沒有這個(gè)功能桌吃,需要寫成render形式
2.png
另外在體積上,完整版比only版多了差不多1/2苞轿,圖中可以看到茅诱,vue.js/vue.min.js是完整版,后者是壓縮完整版基礎(chǔ)上的壓縮版呕屎,而vue.runtime.js/vue.runtime.min.js是runtime only版
不同版本的體積
在源碼中让簿,完整版和only版入口不一樣
不同版本的入口文件
不同入口區(qū)別
1.png
可以看到無論是哪個(gè)版本都是在runtime/index出來的基礎(chǔ)上做出相應(yīng)的修改
這次走的是完整版入口
順序
而在進(jìn)入core之前,在runtime/index目錄下秀睛,做出了下面的增添尔当,也就是web版最外層的公共部分,以后就會(huì)在這基礎(chǔ)上修改蹂安,從而使最終文件帶有編譯器或者不帶編譯器compiler
runtime.index.jpeg
下圖開始的就是core/index出來的vue上添加的屬性和方法椭迎,分為屬性/方法名+數(shù)據(jù)類型的組合,已經(jīng)用不同顏色標(biāo)記
core/index.js core入口文件
part1.jpeg
Core/instance