Skip to content

Sidebar 布局侧栏

应用级侧栏 RdSidebar;Logo / 用户区经插槽接入 RdLogoRdSidebarUser。不依赖 vue-router,跳转与退出由业务处理。

基础用法

#logoRdLogo#footerRdSidebarUser 并监听 @logout

Peer 依赖

用途
element-plusElMenu / ElSubMenu / ElMenuItem
@lucide/vue折叠 / 退出图标;菜单 icon 也可传 Lucide

不需要 vue-router。业务在 @selectrouter.push,在 RdSidebarUser@logout 里清登录态。

数据契约

ts
interface RdNavItem {
  name: string
  icon?: Component
  path?: string
  external?: boolean
  badge?: number
  children?: RdNavItem[]
}

interface RdNavGroup {
  label: string
  items: RdNavItem[]
}

工具函数:getNavIndex / hasChildren / resolveActiveMenu / resolveMenuOpeneds

RdListPageSidebar(列表页左栏树)不同,本组件是应用布局侧栏。

API

RdSidebar Attributes

属性名说明类型默认值
collapsed是否折叠侧栏boolean
groups导航分组(RdNavGroup[])RdNavGroup[]
active-path当前高亮 path(由业务传入,通常等于 route.path)string''
show-collapse是否显示折叠按钮booleantrue

RdSidebar Events

事件名说明类型
update:collapsed折叠状态变更(支持 v-model:collapsed)(value: boolean)
toggle-collapse点击折叠按钮
select叶子菜单点击,回传 RdNavItem;跳转由业务处理(item: RdNavItem)
logo-clickLogo 区点击;首页跳转由业务处理()

RdSidebar Slots

插槽名说明
logoLogo 区(有槽才显示);作用域 collapsed;放 RdLogo
footer底部区;作用域 collapsed;可放 RdSidebarUser

RdSidebarUser Attributes

属性名说明类型默认值
collapsed侧栏折叠态booleanfalse
name用户显示名string
role角色 / 副标题string''
avatarText头像文字;默认 name 首字string

RdSidebarUser Events

事件名说明类型
logout点击退出登录()