Vue Router
Vue Router 是 Vue.js 官方的路由管理器。它和 Vue.js 的核心深度集成,讓構建單頁面應用變得易如反掌。包含的功能有:
- 嵌套的路由/視圖表
- 模塊化的、基於組件的路由配置
- 路由參數、查詢、通配符
- 基於 Vue.js 過渡系統的視圖過渡效果
- 細粒度的導航控制
- 帶有自動激活的 CSS class 的鏈接
- HTML5 歷史模式或 hash 模式,在 IE9 中自動降級
- 自定義的滾動條行爲
官方文檔:https://router.vuejs.org/zh/
一 安裝
npm install vue-router
二 引用
main.js中添加, 引入vue-router
import VueRouter from 'vue-router'
Vue.use(VueRouter)
三 創建頁面
在page下創建fruits目錄, 添加兩個頁面
apple.vue
<template>
<div>APPLE</div>
</template>
<script>
export default {}
</script>
orange.vue
<template>
<div>ORANGE</div>
</template>
<script>
export default {}
</script>
四 關聯
在main.js中添加
//引入組件
import apple from './page/fruits/apple.vue'
import orange from './page/fruits/orange.vue'
//創建一個VueRouter實例
const router = new VueRouter({
mode:'history',
routes:[
{path:'/apple',component:apple},
{path:'/orange',component:orange}
]
})
這樣就把router和頁面關聯起來了.測試一下
五 優化
把路由部分提取出來, 保持main.js的簡潔
在scr下創建router文件夾, 創建文件index.js
把main.js的相關代碼提取到這裏,
注意添加 export default router
import Vue from 'vue'
import Router from 'vue-router'
import home from '@/page/home'
Vue.use(Router)
//引入組件
import apple from '@/page/fruits/apple.vue'
import orange from '@/page/fruits/orange.vue'
//創建一個VueRouter實例
const router = new Router({
mode:'history',
base: '__dirname',
routes:[
{path:'/apple',component:apple},
{path:'/orange',component:orange}
]
})
export default router;
main.js 添加引用 ./router 即可
import router from './router'
六 導航
在page目錄下添加 menu.vue, 添加導航菜單
<template>
<div>
<router-link :to ="{name:'apple'}">
apple
</router-link>
<p/>
<router-link :to ="{name:'orange'}">
orange
</router-link>
</div>
</template>
<script>
export default {}
</script>
在apple.vue及orange.vue中引用menu
<template>
<div>
<Menu></Menu>
<p>APPLE</p>
</div>
</template>
<script>
import Menu from '@/page/menu.vue'
export default {
components: {
Menu
}
}
</script>
<template>
<div>
<Menu></Menu>
<p>ORANGE</p>
</div>
</template>
<script>
import Menu from '@/page/menu.vue'
export default {
components: {
Menu
}
}
</script>
router/index.js 路由文件中, 用路由添加name
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
//引入組件
import apple from '@/page/fruits/apple.vue'
import orange from '@/page/fruits/orange.vue'
import menu from '@/page/menu.vue'
//創建一個VueRouter實例
const router = new Router({
mode:'history',
routes:[
{name:'home',path:'/',component:menu},
{name:'apple',path:'/apple',component:apple},
{name:'orange',path:'/orange',component:orange}
]
})
export default router;
添加導航成功