Sidebar

侧边栏:可折叠为图标栏的应用导航,支持分组、二级嵌套、激活态与徽标。折叠时标签在视觉上隐藏但仍留在 DOM,读屏器可读;含 WAI-ARIA 的 aria-current / aria-expanded 语义。

属性

属性类型默认值说明
collapsedboolean—受控折叠态
defaultCollapsedbooleanfalse非受控初始折叠态
onCollapsedChange(collapsed: boolean) => void—折叠态变化回调
collapsiblebooleantrue是否允许折叠,为 false 时 Trigger 禁用
activestring—受控激活项 value
defaultActivestring''非受控初始激活项 value
onActiveChange(value: string) => void—激活项变化回调,受控与非受控都会触发
SidebarProvidercomponent—把折叠、激活状态提升到 Sidebar 之外,供顶部导航栏等外部按钮共享;状态相关 props 与 Sidebar 一致
useSidebar()hook—读取 collapsed / active 并提供 toggleCollapsed,可在 Sidebar 或 SidebarProvider 内调用
Sidebar.HeaderHTMLAttributes—顶部区域,折叠时只保留 Trigger
Sidebar.ContentHTMLAttributes—导航主体,可滚动,默认渲染为 <nav>
Sidebar.GroupHTMLAttributes—分组容器,可配 label 与 icon
Group.labelReactNode—分组标题,折叠时隐藏
Group.iconReactNode—分组图标,折叠时保留
Sidebar.ItemHTMLAttributes—导航项;含 Sub 时变为可展开的父项
Item.valuestring—唯一值,与根组件的 active 对应
Item.iconReactNode—前置图标
Item.badgeReactNode—右侧徽标 / 计数
Item.activeboolean—显式指定激活态,覆盖 root 的 active 匹配
Item.disabledboolean—禁用后不可点击,也不参与激活
Item.hrefstring—渲染为 <a> 链接
Item.asChildbooleanfalse把行为合并到唯一子元素(如路由 Link)上,仅用于叶子项
Sidebar.SubHTMLAttributes—子级导航容器,展开态由父级 Item 注入
Sidebar.SubItemHTMLAttributes—二级导航项,属性与 Item 一致
Sidebar.SeparatorHTMLAttributes—分隔线
Sidebar.FooterHTMLAttributes—底部区域,折叠时只保留 Trigger
Sidebar.TriggerHTMLAttributes—折叠开关,切换 collapsed
Trigger.asChildbooleanfalse不渲染自带按钮,把行为合并到唯一子元素上
Trigger.expandLabelstring—折叠时按钮的无障碍名称
Trigger.collapseLabelstring—展开时按钮的无障碍名称