VueJS學(xué)習(xí)之旅 01

近期VueJS非常的火拴清,于是就想學(xué)學(xué)它是如何開(kāi)發(fā)的泻蚊。

以往學(xué)習(xí)一個(gè)新的框架躲舌,都是從官方的文檔和一些大神的博文開(kāi)始的。這次想換個(gè)思路性雄,從源碼開(kāi)始没卸。

接觸前端技術(shù)也有幾年了,用過(guò)了不少的框架和工具庫(kù)秒旋。一直都是知其然而不知其所以然约计,也想借助框架源碼的學(xué)習(xí),來(lái)鞏固一下基礎(chǔ)知識(shí)迁筛。前端技術(shù)發(fā)展迅猛煤蚌,習(xí)之如同逆水行舟,不進(jìn)則退啊细卧。嗚呼尉桩,哀哉。贪庙。蜘犁。

當(dāng)然,開(kāi)始之前也到官網(wǎng)簡(jiǎn)單的了解了一下基本原理和API止邮。


OK! Let's go!

首先必然是從github上clone一份vuejs的源碼到本地

git clone -b master https://github.com/vuejs/vue.git

我們先來(lái)看看dist目錄下面都有哪些東西这橙。

$ ls dist/
README.md  vue.common.js  vue.js  vue.min.js  vue.runtime.common.js  vue.runtime.js  vue.runtime.min.js

可以看到6個(gè)js文件和一個(gè)readme,那這些文件有哪些區(qū)別农尖,可以到readme中看看析恋。

  1. 第一行給出了一個(gè)規(guī)則解釋:以 common.js 結(jié)尾的文件是為構(gòu)建工具準(zhǔn)備的,不以 common.js 結(jié)尾的文件是為瀏覽器直接運(yùn)行而準(zhǔn)備的盛卡。
  2. vue.js和vue.min.js助隧,支持在瀏覽器中直接用script標(biāo)簽引入。其中vue.js硬編碼為開(kāi)發(fā)模式,vue.min.js硬編碼為生產(chǎn)模式并村。
  3. vue.common.js基于CommonJS標(biāo)準(zhǔn)構(gòu)建巍实,同時(shí)包含compiler。它是為打包工具(Webpack或Browserify)準(zhǔn)備的哩牍。有別于瀏覽器構(gòu)建版本棚潦,用來(lái)判斷 開(kāi)發(fā)/生產(chǎn) 模式的 process.env.NODE_ENV ,可以在構(gòu)建過(guò)程中指定(非硬編碼)膝昆。當(dāng)運(yùn)行于node環(huán)境時(shí)丸边,vuejs會(huì)讀取node環(huán)境的 process.env.NODE_ENV
  4. vue.runtime.common.js,也是基于CommonJS標(biāo)準(zhǔn)構(gòu)建荚孵,但是不包含compiler妹窖,這意味著你不能能使用 template 選項(xiàng)。但是仍然可以在 .vue 但文件組建中使用收叶,因?yàn)槿?vue-loader vueify 等會(huì)默認(rèn)預(yù)編譯模板骄呼。
  5. vue.runtime.js,瀏覽器構(gòu)建版本判没,不包含compiler蜓萄。硬編碼為開(kāi)發(fā)模式。
  6. vue.runtime.min.js澄峰,同vue.runtime.js嫉沽。硬編碼為生產(chǎn)模式。

接下來(lái)我們看看package.json還給我們提供了哪些信息摊阀。
打開(kāi)package.json耻蛇,其中有一行

"main": "dist/vue.runtime.common.js"

這意味著在使用模塊化系統(tǒng)中通過(guò)一些代碼引用模塊時(shí),默認(rèn)引入的是 vue.runtime.common.js 文件胞此。(既不能在代碼中直接使用 template 選項(xiàng))

import Vue from 'vue';
or 
var Vue = require('vue');

如果需要使用 template 該怎么做臣咖?

Webpack中可以用resolve.alias將vue模塊指向其他的構(gòu)建版本

resolve: {
 alias: {
   vue$: 'vue/dist/vue.common.js'
 }
}

Browserify中 aliasify 同樣可以實(shí)現(xiàn)

OK,了解了這些之后漱牵,我們應(yīng)該來(lái)看看具體的代碼了夺蛇。

打開(kāi)dist/vue.js,發(fā)現(xiàn)文件不小酣胀,同時(shí)也不容易找到重點(diǎn)刁赦。不如我們直接打開(kāi)src目錄,看看代碼結(jié)構(gòu)闻镶。一目了然甚脉,結(jié)構(gòu)很清晰。但是entries文件夾下的內(nèi)容是做什么的铆农,第一時(shí)間沒(méi)有猜到牺氨,看來(lái)有必要結(jié)合以下build過(guò)程來(lái)了解一下。

下面來(lái)看看項(xiàng)目是如何build的吧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末猴凹,一起剝皮案震驚了整個(gè)濱河市夷狰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌郊霎,老刑警劉巖沼头,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異书劝,居然都是意外死亡进倍,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門购对,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)背捌,“玉大人,你說(shuō)我怎么就攤上這事洞斯。” “怎么了坑赡?”我有些...
    開(kāi)封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵烙如,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我毅否,道長(zhǎng)亚铁,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任螟加,我火速辦了婚禮徘溢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘捆探。我一直安慰自己然爆,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布黍图。 她就那樣靜靜地躺著曾雕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪助被。 梳的紋絲不亂的頭發(fā)上剖张,一...
    開(kāi)封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音揩环,去河邊找鬼搔弄。 笑死,一個(gè)胖子當(dāng)著我的面吹牛丰滑,可吹牛的內(nèi)容都是我干的顾犹。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蹦渣!你這毒婦竟也來(lái)了哄芜?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤柬唯,失蹤者是張志新(化名)和其女友劉穎认臊,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锄奢,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡失晴,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拘央。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涂屁。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖灰伟,靈堂內(nèi)的尸體忽然破棺而出拆又,到底是詐尸還是另有隱情,我是刑警寧澤栏账,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布帖族,位于F島的核電站,受9級(jí)特大地震影響挡爵,放射性物質(zhì)發(fā)生泄漏竖般。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一茶鹃、第九天 我趴在偏房一處隱蔽的房頂上張望涣雕。 院中可真熱鬧,春花似錦闭翩、人聲如沸挣郭。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)丈屹。三九已至,卻和暖如春伶棒,著一層夾襖步出監(jiān)牢的瞬間旺垒,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工肤无, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留先蒋,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓宛渐,卻偏偏與公主長(zhǎng)得像竞漾,于是被迫代替她去往敵國(guó)和親眯搭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載 :OpenDiggawesome-github-vue 是由OpenDigg整理并維護(hù)的Vue相關(guān)開(kāi)源項(xiàng)目庫(kù)...
    果汁密碼閱讀 23,128評(píng)論 8 124
  • 前幾日聽(tīng)到一句生猛與激勵(lì)并存业岁,可怕與尷尬同在鳞仙,最無(wú)奈也無(wú)解的話:“90后,你的中年危機(jī)已經(jīng)殺到”笔时。這令我很受觸動(dòng)棍好。...
    王鈺峰閱讀 4,385評(píng)論 1 22
  • 早上6點(diǎn)半鬧鐘如約而至的響起借笙,然而我卻向上帝祈禱了,祈求您把時(shí)鐘走的慢一點(diǎn)较锡。是那么困业稼,那么有點(diǎn)不明白自己到底在折騰...
    Sophia路閱讀 434評(píng)論 4 5
  • 隨著我們的兩個(gè)寶貝兒子的降生我們的生活發(fā)生了翻天覆地的變化。 雖然已過(guò)而立之年蚂蕴,以前也迫切的想要個(gè)孩子低散,但孩子們來(lái)...
    philipzhibin閱讀 241評(píng)論 0 2