Skip to content

面包屑 Breadcrumb

用于展示当前页面的层级路径,方便用户在层级结构中导航和返回上一级。

基本用法

使用 CBreadcrumb 包裹多个 CBreadcrumbItem,通过默认插槽或 label 指定文本。

vue
<c-breadcrumb>
  <c-breadcrumb-item>首页</c-breadcrumb-item>
  <c-breadcrumb-item>文档</c-breadcrumb-item>
  <c-breadcrumb-item>组件</c-breadcrumb-item>
</c-breadcrumb>

分隔符

  • 通过 separator 控制分隔符:slasharrow 或任意字符串。
vue
<c-breadcrumb separator="arrow">
  <c-breadcrumb-item>首页</c-breadcrumb-item>
  <c-breadcrumb-item>列表</c-breadcrumb-item>
  <c-breadcrumb-item>详情</c-breadcrumb-item>
</c-breadcrumb>

分隔符隐藏

最后一个子项的分隔符会自动隐藏,同时为最后项添加 aria-current="page",提高语义化与可访问性。

自定义分隔符插槽

你可以在 CBreadcrumbItem 上使用名为 separator 的插槽自定义分隔符内容:

vue
<c-breadcrumb>
  <c-breadcrumb-item>
    首页
    <template #separator>•</template>
  </c-breadcrumb-item>
  <c-breadcrumb-item>
    列表
    <template #separator>•</template>
  </c-breadcrumb-item>
  <c-breadcrumb-item>详情</c-breadcrumb-item>
</c-breadcrumb>

路由跳转

CBreadcrumbItem 支持 toreplace 属性。当存在 vue-router 时优先通过路由跳转,否则回退到 window.location.href

下面示例会跳转到组件文档页面(将发生整页跳转):

vue
<c-breadcrumb>
  <c-breadcrumb-item label="Icon" to="/cui/components/icon.html" />
  <c-breadcrumb-item label="Button" to="/cui/components/button.html" :replace="true" />
  <c-breadcrumb-item label="当前页" disabled />
</c-breadcrumb>

无障碍与语义

  • CBreadcrumb 使用 nav + ol,并可通过 ariaLabel 指定导航语义标签。
vue
<c-breadcrumb ariaLabel="页面路径">
  <c-breadcrumb-item>一级</c-breadcrumb-item>
  <c-breadcrumb-item>二级</c-breadcrumb-item>
  <c-breadcrumb-item>三级</c-breadcrumb-item>
</c-breadcrumb>

API

CBreadcrumb Props

属性类型默认值说明
separatorstring | 'slash' | 'arrow''slash'分隔符类型或自定义字符,可选值:'slash'(/)、'arrow'(>)或任意字符串
ariaLabelstring'Breadcrumb'导航标签说明,用于无障碍访问

CBreadcrumbItem Props

属性类型默认值说明
labelstring''显示文本,也可以通过默认插槽自定义内容
tostring | RouteLocationRaw''目标路由或链接地址,支持字符串或路由对象
replacebooleanfalse是否替换当前历史记录,而不是添加新记录
disabledbooleanfalse是否禁用链接行为,禁用后不可点击

CBreadcrumbItem Slots

插槽名说明参数
default自定义面包屑项内容-
separator自定义分隔符内容-

CBreadcrumbItem Methods

方法名说明参数返回值
navigate手动触发导航跳转(event: MouseEvent)void

可访问性

属性说明
aria-current自动在最后一项设置为 'page',标识当前页面
aria-disabled在禁用项上设置为 'true',标识不可操作状态