Vue項(xiàng)目創(chuàng)建和配置文件關(guān)系調(diào)用

1. Vue項(xiàng)目構(gòu)建

  • 首先默認(rèn)安裝了node.js和vue-cli,接下來直接使用腳手架創(chuàng)建項(xiàng)目:
vue init webpack Demo // Demo是自定義項(xiàng)目跟目錄名迄损,無此目錄則自動(dòng)創(chuàng)建
  • 接下來會進(jìn)行一系列配置詢問丑蛤,看圖:


    項(xiàng)目配置
  • 配置完回車梅桩,項(xiàng)目腳手架自動(dòng)生成完畢


    腳手架
  • 進(jìn)入Demo文件夾茸炒,啟動(dòng)項(xiàng)目試試:
cd Demo
npm start // 推薦使用npm run dev,該命令完整webpack環(huán)境可使用(webpack-simple環(huán)境無法使用)崎坊,具體可在配置文件package.json中查看:
啟動(dòng)路徑
  • 啟動(dòng)項(xiàng)目后提示已經(jīng)運(yùn)行在本地8080端口备禀,直接瀏覽器跑起來:


    項(xiàng)目啟動(dòng)

    默認(rèn)啟動(dòng)頁面

2.項(xiàng)目文件配置

  • 首先編輯器打開項(xiàng)目創(chuàng)建的文件夾,或者叫Github / 碼云拉下來的倉庫:

    本地倉庫

    這其中有很多的配置文件流强,具體有什么用這里不過多描述否則文章太長我也受不了...而上圖選中的index.html就是默認(rèn)加載的首頁痹届。

  • 其實(shí)項(xiàng)目生成的很多配置文件大多不需要修改,主要修改的地方是src目錄下的一些配置文件:

    main.js

    這個(gè)頁面 是整個(gè)項(xiàng)目的核心打月,可以看到它創(chuàng)建了一個(gè)Vue實(shí)例掛載到index.html頁面中队腐,其中就注冊了App.vue組件和router目錄下的路由,這個(gè)頁面也不需要修改奏篙。

  • 接下來看App.vue這個(gè)文件:


    App.vue組件
  • 這個(gè)組件呢就使用了我們的組件模板直接替換掉了index.html中的<div id="app"></div>柴淘,所以這里我們把配置改成:

    App.vue

    把默認(rèn)的內(nèi)容和樣式都去掉,留下路由即可(<router-view/>
    這里再說一個(gè)注意點(diǎn):一旦開啟了ESLint秘通,時(shí)刻注意代碼規(guī)范(自行百度規(guī)則)为严,不過.eslintignore文件中的路徑下的文件將不會檢查,一旦語法不規(guī)范肺稀,你的頁面控制臺和終端都會報(bào)錯(cuò)第股,這里根據(jù)提示的地方修改即可。

  • 既然根組件保留了路由內(nèi)容话原,那么就是router目錄下的index.js文件:

    index.js

    這里就顯示了根路徑下的內(nèi)容(組件)夕吻,默認(rèn)加載的是HelloWorld組件(從src目錄下的components目錄下的Hellow.vue中導(dǎo)入)诲锹,因此這里把圈掉的干掉,在重新配置根目錄加載的內(nèi)容即可涉馅,最后自定義放組件的目錄(默認(rèn)情況不會使用components目錄而是自行創(chuàng)建归园,在通過同樣的方式引入即可)。

index.js
  • 接下來重新配置首頁(根路徑下加載的組件)和路由:

image.png

這里配置了一個(gè)路由稚矿,當(dāng)頁面跳轉(zhuǎn)到localhost:8080/list目錄下時(shí)庸诱,頁面將跳轉(zhuǎn)(加載List組件),組件配置模板如下:

組件模板

為了證明配置成功晤揣,附圖2張(主頁和路由配置的新頁面):


1

2

3.基本項(xiàng)目搭建完成桥爽,接下來分析調(diào)用關(guān)系

人家的圖,希望不要被打死
  • 使用到vue項(xiàng)目的文件包括一個(gè).html碉渡,兩個(gè).js聚谁,兩個(gè).vue文件母剥,關(guān)系如上圖所示
  • 由圖可見滞诺,文件關(guān)鍵處在于main.js,管理著所有需要的資源环疼,其中new Vue的參數(shù)习霹,解釋如下:
  • el:官方解釋為實(shí)例提供掛載的元素。此處為index.html中的<div id="app"><div>炫隶。
  • router:為router:router的簡寫(ES6語法)淋叶,指向引入文件中的routes:[]
  • components:注冊哪些組件伪阶,就要在頂部引入文件煞檩。
    template:替換掛載元素的模板組件,而掛載元素的內(nèi)容都將被忽略栅贴。即用<template>替換index.html里面的<div id="app"></div>

此時(shí)斟湃,可知main.js文件調(diào)用關(guān)系分為三步,如圖中序號:

  1. 確定將被掛載(替換)的元素檐薯,此處為index.html中的<div id="app"><div>凝赛。
  2. 注冊組件(此處只有組件App),選擇其中用于替換掛載元素(第一步中的元素)的模板組件(<App/>)坛缕,即用App.vue替換index.html中的<div id="app"><div>墓猎。
  3. 注冊路由器router:
    1. 模板組件(App.vue)中有<router-view/>,將在其中渲染路由匹配到的組件
    2. 注入(import)路由時(shí)指定的是router文件夾赚楚,即文件夾下所有routes
    3. router文件夾下此時(shí)只有index.js文件毙沾,其中routes:[]規(guī)定了文件地址及其url地址映射
    4. 根據(jù)文件地址,載入組件(HelloWorld.vue)宠页,組件被渲染在<router-view/>中左胞,顯示在index.html

然而追本溯源膨俐,調(diào)用關(guān)系中仍有兩個(gè)問題:

  1. index.html為何默認(rèn)顯示?
    其實(shí)罩句,雙擊執(zhí)行npm中dev時(shí)焚刺,控制臺將執(zhí)行如下語句:

webpack-dev-server --inline --progress --config build/webpack.dev.conf.js

由此可見,運(yùn)行時(shí)啟動(dòng)文件webpack.dev.conf.js门烂,而文件中包含如下語句乳愉,規(guī)定了起始頁面:

new HtmlWebpackPlugin({
          filename: 'index.html',
          template: 'index.html',
          inject: true
        }),
  1. main.js為何默認(rèn)加載?
    因?yàn)槭褂玫哪_手架工具vue-cli里用webpack來打包項(xiàng)目文件屯远,webpack.dev.conf文件里還定義了webpack基礎(chǔ)配置文件webpack.base.conf.js蔓姚,定義語句如下:
    const baseWebpackConfig = require('./webpack.base.conf')
    而文件webpack.base.conf.js中,包含如下語句慨丐,指定了入口:
 entry: {
    app: './src/main.js'
  }

總結(jié):

  • 以上就是一個(gè)完整的Vue項(xiàng)目創(chuàng)建及配置文件修改和調(diào)用關(guān)系的說明坡脐,喜歡的小伙伴就點(diǎn)個(gè)喜歡吧,博主也不容易房揭!
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末备闲,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子捅暴,更是在濱河造成了極大的恐慌恬砂,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蓬痒,死亡現(xiàn)場離奇詭異泻骤,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)梧奢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進(jìn)店門狱掂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人亲轨,你說我怎么就攤上這事趋惨。” “怎么了瓶埋?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵希柿,是天一觀的道長。 經(jīng)常有香客問我养筒,道長曾撤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任晕粪,我火速辦了婚禮挤悉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘巫湘。我一直安慰自己装悲,他們只是感情好昏鹃,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著诀诊,像睡著了一般洞渤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上属瓣,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天载迄,我揣著相機(jī)與錄音,去河邊找鬼抡蛙。 笑死护昧,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的粗截。 我是一名探鬼主播惋耙,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼熊昌!你這毒婦竟也來了绽榛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤浴捆,失蹤者是張志新(化名)和其女友劉穎蒜田,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體选泻,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年美莫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了页眯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,566評論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡厢呵,死狀恐怖窝撵,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情襟铭,我是刑警寧澤碌奉,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站寒砖,受9級特大地震影響赐劣,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜哩都,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一魁兼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧漠嵌,春花似錦咐汞、人聲如沸盖呼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽几晤。三九已至,卻和暖如春植阴,著一層夾襖步出監(jiān)牢的瞬間锌仅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工墙贱, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留热芹,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓惨撇,卻偏偏與公主長得像伊脓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子魁衙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評論 2 348

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