Vue 菜单路由(router)只替换对应主页面中内容,而不是整个home页面的router index.js的两种设置方法
vue
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
项目地址:https://gitcode.com/gh_mirrors/vu/vue
免费下载资源
·
在系统登录到系统主页面之后,通过点击不同的菜单动态在主页面内替换相应的内容,而保持菜单栏和标题栏内容不变,可以通过以下两种方式实现,两种方式的原理都是相同的,
方式一:在路由设置时,设置一个home路由,其compone对应的就是home组件,然后一级菜单对应的路由都作为其children[ ]进行设置,在home页面的 主界面(main)添加<router-view>,则在点击主界面的菜单栏跳转指定的router时,就会只替换home中添加<router-view>的位置,此操作相当于是把其他的组件都设置成了home组件的子组件。其他的需要进行全部显示页面替换的可以写成home路由并列的路由对象,例如:login,404等。
const routes = [
{
path: '/',
redirect:'/login',
},
{
path: '/login',
name: 'login',
component: () => import('../views/Login/index.vue')
},
{
path:'/home',
name:'home',
component: Home,
redirect:'/welcome',
// component:() => import('../views/Home/index.vue'),
children:[
{
path:'/welcome',
component:()=>import('../views/Home/Welcome/index.vue'),
},
{
path:'/users',
component:()=>import('../views/UserManage/UserManage.vue'),
},
]
},
方式二:其实原理是相同的,就是写法的不同而已。每个一级菜单对应一个路由对象,同时每个一级菜单对应路由的组件(component)都设置为home(Layout)组件,然后,其默认跳转到一个二级菜单路由,其所有的二级菜单都作为其children[ ],如果有三级菜单的话继续利用children[]进行。方法二的结构看起来更清晰,但是多写了些重复的代码。
import Layout from '../views/layout/Layout'
export const constantRouterMap = [
{ path: '/login', component: () => import('@/views/login/index'), hidden: true },
{ path: '/404', component: () => import('@/views/404'), hidden: true },
{
path: '/',
component: Layout,
redirect: '/dashboard',
name: 'Dashboard',
hidden: true,
children: [{
path: 'dashboard',
component: () => import('@/views/dashboard/index')
}]
},
{
path: '/example',
component: Layout,
redirect: '/example/table',
name: 'Example',
meta: { title: 'Example', icon: 'example' },
children: [
{
path: 'table',
name: 'Table',
component: () => import('@/views/table/index'),
meta: { title: 'Table', icon: 'table' }
},
{
path: 'tree',
name: 'Tree',
component: () => import('@/views/tree/index'),
meta: { title: 'Tree', icon: 'tree' }
}
]
},
GitHub 加速计划 / vu / vue
207.55 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:2 个月前 )
73486cb5
* chore: fix link broken
Signed-off-by: snoppy <michaleli@foxmail.com>
* Update packages/template-compiler/README.md [skip ci]
---------
Signed-off-by: snoppy <michaleli@foxmail.com>
Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 4 个月前
e428d891
Updated Browser Compatibility reference. The previous currently returns HTTP 404. 5 个月前
更多推荐
已为社区贡献1条内容
所有评论(0)