|
| 1 | +路由/菜单说明 |
| 2 | +==== |
| 3 | + |
| 4 | + |
| 5 | + |
| 6 | +格式和说明 |
| 7 | +---- |
| 8 | + |
| 9 | +```javascript |
| 10 | +/** |
| 11 | + * 路由配置说明: |
| 12 | + * 建议:sider menu 请不要超过三级菜单,若超过三级菜单,则应该设计为顶部主菜单 配合左侧次级菜单 |
| 13 | + * |
| 14 | + **/ |
| 15 | + { |
| 16 | + hidden: true, |
| 17 | + redirect: noredirect, |
| 18 | + name: 'router-name', |
| 19 | + meta: { |
| 20 | + title: 'title', |
| 21 | + icon: 'svg-name', |
| 22 | + keepAlive: true, |
| 23 | + hiddenPageHeader: true, |
| 24 | + } |
| 25 | +} |
| 26 | +``` |
| 27 | + |
| 28 | + |
| 29 | + |
| 30 | +`{ Route }` 对象 |
| 31 | + |
| 32 | +| 参数 | 说明 | 类型 | 默认值 | |
| 33 | +| -------- | ----------------------------------------- | ------- | ------ | |
| 34 | +| hidden | 控制路由是否显示在 sidebar | boolean | falase | |
| 35 | +| redirect | 重定向地址, 访问这个路由时,自定进行重定向 | string | - | |
| 36 | +| name | 路由名称, 建议设置,且不能重名 | string | - | |
| 37 | +| meta | 路由元信息(路由附带扩展信息) | object | {} | |
| 38 | + |
| 39 | + |
| 40 | + |
| 41 | +`{ Meta }` 对象 |
| 42 | + |
| 43 | +| 参数 | 说明 | 类型 | 默认值 | |
| 44 | +| ---------------- | ------------------------------------------------------------ | ------- | ------ | |
| 45 | +| title | 路由标题, 用于显示面包屑, 页面标题 *推荐设置 | string | - | |
| 46 | +| icon | 路由在 menu 上显示的图标 | string | - | |
| 47 | +| keepAlive | 缓存该路由 | boolean | false | |
| 48 | +| hiddenPageHeader | 隐藏 [PageHeader](https://github.com/sendya/ant-design-pro-vue/blob/master/src/components/layout/PageHeader.vue#L14) 组件, *特殊 用于隐藏页面带的 面包屑和页面标题栏 | boolean | false | |
| 49 | +| permission | 与项目提供的权限拦截匹配的权限,如果不匹配,则会被禁止访问该路由页面 | array | [] | |
| 50 | + |
| 51 | + |
| 52 | + |
| 53 | +路由例子 |
| 54 | +---- |
| 55 | + |
| 56 | +```ecmascript 6 |
| 57 | +const asyncRouterMap = [ |
| 58 | + { |
| 59 | + path: '/dashboard', |
| 60 | + component: Layout, |
| 61 | + name: 'dashboard', |
| 62 | + redirect: '/dashboard/workplace', |
| 63 | + meta: { title: '仪表盘', icon: 'dashboard', permission: [ 'dashboard' ] }, |
| 64 | + children: [ |
| 65 | + { |
| 66 | + path: '/dashboard/analysis', |
| 67 | + name: 'Analysis', |
| 68 | + component: () => import('@/views/dashboard/Analysis'), |
| 69 | + meta: { title: '分析页', hideHeader: true, permission: [ 'dashboard' ] } |
| 70 | + }, |
| 71 | + { |
| 72 | + path: '/dashboard/monitor', |
| 73 | + name: 'Monitor', |
| 74 | + hidden: true, |
| 75 | + component: () => import('@/views/dashboard/Monitor'), |
| 76 | + meta: { title: '监控页', hideHeader: true, permission: [ 'dashboard' ] } |
| 77 | + }, |
| 78 | + { |
| 79 | + path: '/dashboard/workplace', |
| 80 | + name: 'Workplace', |
| 81 | + component: () => import('@/views/dashboard/Workplace'), |
| 82 | + meta: { title: '工作台', permission: [ 'dashboard' ] } |
| 83 | + } |
| 84 | + ] |
| 85 | + } |
| 86 | +] |
| 87 | +``` |
| 88 | + |
| 89 | +> 请注意 `component: () => import('..') ` 方式引入路由的页面组件为 懒加载模式 |
| 90 | +> |
| 91 | +> 具体可以看 [Vue 官方文档](https://router.vuejs.org/zh/guide/advanced/lazy-loading.html) |
| 92 | +
|
0 commit comments