Vue-cli项目中路由的基础用法,以及路由嵌套
文件目录: 编辑router文件夹下的index.js文件· 第一步:引用vue和vue-router ,Vue.use(VueRouter)/* eslint-disable*/import Vue from 'vue'import Router from 'vue-router'Vue.use(Router)·第二步:引用定义好的路由组件import Ch...
·
文件目录:
编辑router文件夹下的index.js文件
· 第一步:引用vue和vue-router ,Vue.use(VueRouter)
/* eslint-disable*/
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
·第二步:引用定义好的路由组件
import ChildOne from '../components/childOne'
import ChildTwo from '../components/childTwo'
·第三步:定义路由(路由对象包含路由名、路径、组件、参数、子路由等),每一个路由映射到一个组件
·第四步:通过new Router来创建router实例
export default new Router({
routes: [
{
path: '/one',
name: 'ChildOne',
component: ChildOne
},
{
path: '/two',
name: 'ChildTwo',
component: ChildTwo
}
]
})
在main.js文件上编辑
·第五步:在main.js中将路由实例挂载到vue根实例上,使得整个应用都有路由功能,如下
import router from '../src/router/index.js'
new Vue({
el: '#app',
router,
components: { App },
template: '<App/>'
})
在组件文件上使用路由,编辑app.vue
·第六步:在组件中使用router-link 标签实现跳转路由、使用router-view来实现路由显示,如下
<template>
<div id="app">
<div><img src="./assets/logo.png"></div>
<router-link to="/one">显示第一个页面</router-link>
<router-link to="/two">显示第二个页面</router-link>
<router-view></router-view>
</div>
</template>
该demo中的childOne.vue组件文件
<template>
<div style="border:1px solid blue;color:blue">
<p>这是子组件1的内容!!!</p>
<p>!!!这是第1个路由的页面!!!</p>
</div>
</template>
childTwo.vue组件文件
<template>
<div style="border:1px solid blue;color:blue">
<p>这是子组件2的内容</p>
<p>这是第二个路由显示的页面怎么样</p>
</div>
</template>
注意:在组件中可以使用this.$router访问路由器,可以使用this.$route访问当前路由;
实现效果:
路由嵌套:
使用方法:在router/index.js中定义路由对象时,使用children:[{...},{...}]的形式设置下级路由及映射组件,如下在one路由下设置了log和reg路由
export default new Router({
routes: [
{
path: '/one',
name: 'ChildOne',
component: ChildOne,
children:[
{
path:'log',
component:Log,
},
{
path:'reg',
component:Reg,
},
],
},
{
path: '/two',
name: 'ChildTwo',
component: ChildTwo
}
]
})
childOne.vue中使用二级路由
<template>
<div style="border:1px solid red;color:red;">
<p>这是子组件1的内容</p>
<p>下面开始点击显示嵌套的子路由 </p>
<router-link to="/one/log">显示登录页面</router-link>
<router-link to="/one/reg">显示注册页面</router-link>
<router-view></router-view>
</div>
</template>
更多推荐
所有评论(0)