如何不借助vue-cli,而自行構(gòu)建一個vue項目

對于剛剛接觸vue的同學(xué)來說,直接用官方的構(gòu)建工具vue-cli來生成一個項目結(jié)構(gòu)會存在一些疑惑,比如: .vue組件 為什么可以寫成三段式(tempalte、script、style)? 整個項目是怎樣組織運行起來的,main.js - App.vue - 各個組件 之間是怎么相互引用的?

為了讓更多同學(xué)理解,我們不借助官方構(gòu)建工具,自行構(gòu)建一個類似于官方的項目結(jié)構(gòu),去體會它的運作機制。

在自行構(gòu)建的項目中,我們的組件并不使用.vue文件方式,因為這種文件是經(jīng)過了vue-loader做了相應(yīng)的處理,意思可以理解為將組件<template></template>中的模板編譯到了組件對象中。而我們既然選擇原生的方式,那么我們就應(yīng)該將模板寫在組件選項'template'中(雖然這種方式?jīng)]有語法高亮,但要記得我們這樣做的目的),而我們的組件后綴是.js。

開始:

1. 進入自己的項目根目錄,初始化npm

npm init

2. 安裝vue包到項目

npm install --save-dev vue

3. 創(chuàng)建index.html/src目錄/dist目錄

touch index.html  mkdir src  mkdir dist

文件功能:

到目前,我們的項目結(jié)構(gòu):

顯示大圖

接下來我們在src路徑下創(chuàng)建,js入口文件main.js,項目根組件App.js,和組件目錄components,并且我們象征性的創(chuàng)建兩個組件cp1.js、cp2.js :

main.js 是所有js的入口,(那么我們在index.html文件中只需要引入這個文件就夠了? -- 并不是),該文件將會聲明與其他組件的依賴關(guān)系(而其他組件又會聲明和別的組件的關(guān)系),我們在寫完項目的時候需要使用webpack打包整個項目的js代碼,而這個main.js就是打包尋找依賴的入口。

我們得知通過Vuejs構(gòu)建的項目,是組件化的,項目可以說是由一個個組件構(gòu)成的,在一個組件中可以使用其他的組件作為自己的子組件,那么必然會存在一個根組件,它就是App.js。

組件:

components文件夾下存放的是項目中的除根組件外的其他組件,我們在寫這些組件的時候應(yīng)該遵循的一個原則就是:與外界隔絕,不做任何與外界耦合的假設(shè)。那么我們就來我們就開始編寫組件cp1.js吧:

請注意它和.vue組件寫法的區(qū)別,我們的組件模板是寫在template選項中的。并且提供給外界一個props參數(shù)接口msg。

接下來我們需要在根組件中引用這個組件,根組件的寫法遵循同樣的原則:

要使用cp1組件,首先要將其import導(dǎo)入,因為cp1.js中導(dǎo)出的寫法是export default,所以我們在這可以給cp1組件對象隨意命名(import后緊隨的'cp1'就是我們的命名),這是ES6的語法規(guī)則。

記?。好總€組件對象我們都需要使用export default進行導(dǎo)出,因為這樣外界才可以調(diào)用它,并且將 給此組件的命名權(quán) 遞交給使用者。

我們看到,在根組件中我們有components選項,用來注冊將使用的組件(局部注冊)。此選項對象中的key將作為模板中標簽,value為其他組件對象。

在模板中我們使用了cp1標簽,并且給其props屬性msg賦值為'Message from parent ~'。

入口:

組件都寫好了,那如何將其掛載到html頁面中呢,這個時候我們需要一個橋梁,就是main.js:

這次我們終于用到Vue了?。ㄓ浀孟葘?dǎo)入),并且導(dǎo)入App根組件,將其注冊為Vue實例的組件,并且在模板中使用它(template:'<app></app>'),然后將這個Vue實例掛載到index.html中id為app的元素中。

打包:

在打包之前我們需要先修改vue npm包的package.json文件,將默認導(dǎo)出的‘只包含運行時’改為‘完整版’,即將如下兩項的'runtime'去掉(運行時不包含編譯器 | 編譯器作用:用來將模板字符串編譯成為 JavaScript 渲染函數(shù)的代碼>,因此組件對象不支持 template 選項):

在項目根路徑執(zhí)行打包(全局安裝過webpack)

webpack ./src/main.js ./dist/main.bundle.js

index.html:

  將打包后的文件引入到頁面:

接下來去瀏覽器訪問它吧~

效果:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,763評論 6 539
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,238評論 3 428
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 177,823評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,604評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,339評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,713評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,712評論 3 445
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,893評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,448評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,201評論 3 357
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,397評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,944評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,631評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,033評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,321評論 1 293
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,128評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,347評論 2 377

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

  • 轉(zhuǎn)載 :OpenDiggawesome-github-vue 是由OpenDigg整理并維護的Vue相關(guān)開源項目庫...
    果汁密碼閱讀 23,161評論 8 124
  • 共享單車市場,在遭遇了早期摩拜的腿廢、押金高等痛點后我選擇了ofo,經(jīng)歷了一段蜜月期后立馬覺得不是那么回事,滿大街...
    克拉鉆閱讀 384評論 0 0
  • 這兩天每天都在讀李笑來老師的專欄,發(fā)現(xiàn)其中的道理和概念真的非常重要。而自己前期讀了很多卻從未做筆記,現(xiàn)在...
    開往春天的綠蘿閱讀 821評論 0 0
  • 都知道苦丁茶苦,可它為什么苦?它究竟是不是茶呢?看我用思維導(dǎo)圖科普一下! 知道苦丁茶的由來了吧,知道它為何不屬于茶...
    方明園藝閱讀 213評論 0 0
  • 體驗入:今天一天考察二個高興火鍋,上午的火鍋服務(wù)是從全員內(nèi)心深處綻放出來的,下午考察的高興一鍋服務(wù)是從表面浮著的。...
    熊毅濱1349閱讀 192評論 0 0