# Router 导航路由
# 基础用法
# slotBlocks 配置
# 菜单头部slot block
配置子block的slot为menuTop
,可以插入在菜单头部
# 菜单底部slot block
配置子block的slot为menuBottom
,可以插入在菜单底部
# 导航的位置slot block
配置子block的slot为nav
,可以插入在导航的位置。比如下面例子插入了两个操作按钮“反馈”和“帮助”,
配置子block的slot为nav-left
,可以插入在导航左侧的位置。比如下面例子插入文本“左侧导航插槽”。
# 结构
export interface Route {
path: string, // 路由地址
name: string, // 路由名
class:? string, // 路由添加class类名控制,0.17.12+支持
block?: string, // 渲染block名
redirect?: string, // 重定向地址
children?: Array<Route>, // 子路由
meta?: {
icon?: string, // 对应的图标:参考http://element-cn.eleme.io/#/zh-CN/component/icon,如 'info' 对应 'el-icon-info'
hasMenu?: boolean, // 是否显示导航菜单面包屑,默认true
hidden?: boolean, // 是否在左侧导航菜单显示,默认false
roles?: Array<string>, // 路由权限角色,data内包含对应的角色才可见改路由
noRedirect?: boolean, // 对应面包屑是否禁用跳转,默认为false
}
}
export interface RouterBlock {
type: 'router',
router: {
mode?: 'hash' | 'history' | 'abstract',
base?: string, // 更多选项参考:https://router.vuejs.org/zh/api/#linkexactactiveclass
showMenu?: boolean, // 默认为true, false时隐藏所有路由菜单 0.8.6+支持
uniqueOpened?: boolean, // 是否只保持一个子菜单的展开,展开当前折叠其他,默认为false 0.17.12+支持
routes: Array<Route>,
defaultBreadcrumb?: boolean, // 默认为true,会把首个route作为默认首页加到所有面包屑,设置为false禁用此行为, 0.7.5+支持
forcedRefresh?: boolean, // 默认为false,点击当前菜单(非外链)是否强制刷新渲染,0.15.12+支持
},
data?: {
roles?: Array<string>, // 当前用户权限角色,用户需要包含路由要求的roles权限才能看到对应菜单
logo?: string, // 系统logo(只有使用vipshop的UI主题才会显示)
title?: string, // 系统标题(只有使用vipshop的UI主题才会显示)
userImg?: string, // 用户头像(如果头像为空,则用默认头像)
userName?: string // 用户名字(如果名字为空则不展示用户信息模块)
},
on?: {
// 这里可以在生成router实例时注册事件,如beforeEach,详见 [ Router 实例方法 ](https://router.vuejs.org/zh/api/#router-%E5%AE%9E%E4%BE%8B%E6%96%B9%E6%B3%95)
}
}