src/
放置原始碼的地方,也就是開發都在這個目錄下進行
├── src/
│ ├── assets/ # 放置靜態檔案
│ │ ├── logo.png
│ ├── components/ # 放置 .vue 元件
│ │ ├──HelloWorld.vue
│ ├── router/ # 配置路由
│ │ ├── index.js
│ ├── App.vue # 根組件
│ └── main.js # 入口檔案
main.js
import Vue from 'vue'
import App from './App' // 載入 App 元件
import router from './router' // 載入路由
Vue.config.productionTip = false //開發環境提示,預設為 false
/* eslint-disable no-new */
new Vue({
el: '#app',
router,
template: '<App/>',
components: { App }
})
main.js 是整個專案的入口檔案,也是 webpack 打包的入口檔案,看到熟悉的 new Vue
了嗎?#app
就是在這裡綁定的,除此之外還可以看出這裡引用了 App
的元件和 <App/>
的模板,那 App
又是從哪來的呢?往上找就可發現它是透過 import App from './App'
這句程式碼載入的。
** 要使用 .vue 元件的話都記得要先 import!!
App.vue
<template>
<div id="app">
<img src="./assets/logo.png">
<!-- 路由渲染區域 -->
<router-view/>
</div>
</template>
<script>
export default {
name: 'app'
}
</script>
<style>
#app {
font-family: 'Avenir', Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style>
App.vue 是專案的入口頁面,<router-view/>
則是路由的渲染區域。
.vue 代表的是單一元件檔案 (single-file components),通常分成三部分:<template>
、<script>
、<style>
,需要經由 webpack 等工具編譯成 js 才能使用。由於 Vue-cli 主要是用來開發大型應用程式,當架構變複雜時,就不太適合在同一個檔案裡面定義及引用組元件,因此在 Vue-cli 裡就把它拉出來變成單一的 .vue 檔案。
router/ index.js
import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld' // 載入 HelloWorld 元件,命名為 HelloWorld
Vue.use(Router) // 告訴 Vue 要使用路由
export default new Router({
routes: [
{
path: '/', // 設定路由路徑
name: 'HelloWorld', // 設定路由名稱
component: HelloWorld // 掛載元件
}
]
})
這支是配置路由的檔案,預設路徑為'/'(首頁)
,對應元件為 HelloWorld,HelloWord 由import
載入並定義名稱,所以當我們輸入 http://localhost:8080 時就渲染 HelloWorld 這個元件;依此類推,當需要設置多個路由時,記得必須先import
組件,再配置路由。
components /
components/ 是放置所有元件的資料夾,.vue
如之前所述就是單一元件檔案,舉例來說:頁面中有個搜索框,可能在很多頁面都會用到,將搜索框變成元件後,就可以一直重複利用,不用一再編寫,這就是元件化的基本概念。
assets /
assets/ 是放置靜態資源的資料夾,元件會使用到的圖片、js、css 都可放在這個檔案裡,需特別注意的是,這裡檔案是會被 webpack 打包的,所以要使用相對路徑./assets/[filename]
,如果不想被打包就要放到 static/ 的資料夾下。