Vue項(xiàng)目結(jié)構(gòu)分析

Vue項(xiàng)目結(jié)構(gòu)如下:

項(xiàng)目結(jié)構(gòu)

重點(diǎn)在src文件夾:

assets——靜態(tài)資源,如css,js

components——公共組件

router——路由文件

App.vue——根組件

main.js——入口文件

1.index.html

index.html如其他html一樣,但一般只定義一個(gè)空的根節(jié)點(diǎn),在main.js里面定義的實(shí)例將掛載在根節(jié)點(diǎn)下,內(nèi)容都通過(guò)vue組件來(lái)填充。

index.html

2.App.vue

一個(gè)vue頁(yè)面通常由三部分組成:模板(template)、js(script)、樣式(style)

1) template

其中模板只能包含一個(gè)父節(jié)點(diǎn),<router-view/>為<router-view></router-view>的簡(jiǎn)寫(xiě),是子路由視圖,后面的路由頁(yè)面都顯示在此處。

2) script

vue通常用es6來(lái)寫(xiě),用export default導(dǎo)出,其下面可以包含數(shù)據(jù)data,生命周期(mounted等),方法(methods)等。

3) style

樣式通過(guò)style標(biāo)簽<style></style>包裹,默認(rèn)是影響全局的,如需定義作用域只在該組件下起作用,需在標(biāo)簽上加scoped,<style scoped></style>

App.vue

3.main.js

main.js主要是引入vue框架,根組件及路由設(shè)置,并且定義vue實(shí)例。

main.js

第9行的router相當(dāng)于router:router,為ES6寫(xiě)法,在對(duì)象中,如果鍵值對(duì)一樣的話,可以簡(jiǎn)寫(xiě)為一個(gè);

components: { App }引入根組件App.vue,App即App:App;

template: '<App/>' 是簡(jiǎn)寫(xiě)形式,等價(jià)于 <App></App>。

4.router

router下的index.js文件中的routes定義了路徑為'/'的路由,該路由對(duì)應(yīng)的頁(yè)面是HelloWorld組件。

router


整個(gè)頁(yè)面渲染過(guò)程:

訪問(wèn)http://localhost:8080/顯示的就是index.html頁(yè)面,index.html原本只有一個(gè)根結(jié)點(diǎn)id="app"。

index.html

main.js入口文件引入根組件App。

main.js

前邊已說(shuō)過(guò),根組件App中,<router-view/>是子路由視圖,后面的路由頁(yè)面都顯示在此處,訪問(wèn)http://localhost:8080/,路由為‘/’,根據(jù)路由文件index.js,所以引入HelloWorld組件。

main.js中的template: '<App/>'在html頁(yè)面中添加<App></App>模板,模板內(nèi)容即為HelloWorld組件內(nèi)容。

App.vue
router
HelloWorld.vue

最后渲染出的html結(jié)構(gòu)如下:

html結(jié)構(gòu)

瀏覽器中F12用vue-devtools查看:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容