Vue Router是Vue.js的官方路由器,本文例子使用模块化机制编程。首先在App.vue中加入 <router-view/>
,例子如下:
<template>
<div id="app">
<h1>第一层</h1>
<router-view/>
</div>
</template>
<script>
export default {
name: 'App'
}
</script>
<style>
</style>
- 在main.js中先引入vue-router
import router from './router
完整代码:
import Vue from 'vue'
import App from './App'
import router from './router'
Vue.config.productionTip = false
new Vue({
el: '#app',
router, //使用路由
components: { App },
template: '<App/>'
});
- 启用路由
使用模块化机制编程,需要导入Vue和Router,然后调用 Vue.use(Router)。在index.js文件中加入以下代码:
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
- 配置路由
import HelloWorld from '@/components/HelloWorld'
//定义(路由)组件
export default new Router({
routes: [
{
path: '/',
name: 'HelloWorld',
component: HelloWorld
}
]
})
- 实现嵌套路由
在HelloWorld.Vue中加入<router-view/>
<template>
<div id="helloworld">
<h1>第二层</h1>
<div class="header">
<router-link to="/HelloWorld/Container">主页</router-link>
<router-link to="/HelloWorld/User">个人中心</router-link>
</div>
<router-view/>
</div>
</template>
定义路由组件,要在嵌套的出口中渲染组件,需要在 Router 的参数中使用 children 配置。(以 / 开头的嵌套路径会被当作根路径,这让你充分的使用嵌套组件而无须设置嵌套的路径。)
import HelloWorld from '@/components/HelloWorld'
//定义(路由)组件
export default new Router({
routes: [
{
path: '/HelloWorld',
name: 'HelloWorld',
component: HelloWorld,
children: [
{ path: 'Container', component: Container },
{ path: 'User', component: User}
]
}
]
})
- index.js完整代码
import Vue from 'vue'
import Router from 'vue-router' //引入
import HelloWorld from '@/components/HelloWorld'
import Container from '@/components/Container'
import User from '@/components/User'
Vue.use(Router)//启用
//定义(路由)组件
export default new Router({ //配置
routes: [
{
path: '/HelloWorld',
name: 'HelloWorld',
component: HelloWorld,
children: [ //嵌套路由
{ path: 'Container', component: Container },
{ path: 'User', component: User}
]
}
]
})