vue 在单页面应用里使用二级套嵌路由

时间:2021-05-26

在一个单页面应用里使用二级套嵌路由

目录结构如下:

其中main.js为全局配置文件,App.vue为项目入口。

main.js中路由配置如下

import Vue from 'vue'//引入vueimport App from './App'//引入主模板import Router from 'vue-router'// 引入router路由// 引入项目的模块组件import licai from './components/licai'import home from './components/home'import wode from './components/wode'import home1 from './components/home/home1'import home2 from './components/home/home2'import home2_1 from './components/home/home2_box/home2_1'//套嵌路由import home2_2 from './components/home/home2_box/home2_2' Vue.use(Router)// 使用router // 定义路由var routes = [{ path: '/', redirect: '/home' },//默认显示home{ path: '/home', component: home,//路径home的组件是home meta: { navShow: true}}, { path: '/licai', component: licai, meta: { navShow: true}}, { path: '/wode', component:wode, meta: { navShow: true}},{ path:'/home1/:num', component:home1, meta: { navShow: false}},{ path:'/home2', component:home2, meta: { navShow: false}, //这里定义了两个子路由在home2模块下 children:[ { path: '/home2/home2_1', component:home2_1}, { path: '/home2/home2_2', component:home2_2} ]}]// 实例化路由var vueRouter = new Router({ routes//此路由为上方定义})// 创建和挂载根实例new Vue({ el: '#app',//vue项目在哪个元素下 router: vueRouter,//使用路由 template: '<App></App>', components: { App }})

App.vue为主模板,也就是入口文件,其中定义的路由与一级路由无任何区别:

<template> <div id="app1"> <div class="nav-bottom" v-show="$route.meta.navShow"> <!-- 引入公用的头部 header组件 --> <v-header></v-header> </div> <div class="contianer"> <!-- 路由中的组件在这里被渲染,默认被渲染的为home组件,已在路由配置中设置 --> <router-view></router-view> </div> </div></template>

home.vue,这里是首页,从这里可以进入home2页面:

<template> <div class="home box"> <h3>这里是home页面</h3> <router-link to="/home2">套嵌路由</router-link> </div></template>

home2.vue,这里可以展示套嵌路由了:

<template id="home2"> <div> <header class="home header"><a href="javascript:void(0);" rel="external nofollow" οnclick="javacript:window.history.go(-1)"><img src="../../../static/img/png1.png"/></a>路由套嵌</header> <router-link to="/home2/home2_1">子页面1</router-link> <router-link to="/home2/home2_2">子页面2</router-link> <!-- 路由匹配到的组件将渲染在这里 --> <router-view></router-view> </div></template><style>.home.header{font-size:0.8rem;position:relative;}.home.header>a{display: block;height:0.8rem;width:0.4rem;margin-top:0.6rem;position:absolute;left:0.5rem;}.home.header>a>img{height:100%;width:100%;display:block;}</style>

效果:

以上就是vue 在单页面应用里使用二级套嵌路由的详细内容,更多关于vue 使用二级嵌套路由的资料请关注其它相关文章!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章