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;
添加导航成功