Skip to content

Breadcrumb

Breadcrumb 用于展示当前页面在信息层级中的位置,适合详情页、配置页、控制台等路径导航场景。

Basic

传递 items 属性可以快速创建面包屑,也可以通过 listProps 进一步定制内部 BreadcrumbList 的属性。

Compose API

如果你需要更细粒度地控制结构、插入自定义节点,仍然可以使用组合式 API。

Custom Separator + Ellipsis

根节点的 separator 会作为默认分隔符传递给 BreadcrumbSeparator,也可以和 BreadcrumbEllipsis 配合展示折叠路径。

SX Styling

Breadcrumb 以及 BreadcrumbListBreadcrumbItemBreadcrumbLinkBreadcrumbPageBreadcrumbSeparatorBreadcrumbEllipsis 都支持 sx

常见场景

基础导航

用于页面跳转、层级定位或内容切换,帮助用户理解当前位置。

受控状态

当前项、展开项、页码或激活项需要和路由/查询参数同步时,使用受控模式。

可访问操作

导航项应保持可聚焦、可读,并在禁用或当前状态时给出明确语义。

Usage

组合模式:

tsx
import {
  Breadcrumb,
  BreadcrumbItem,
  BreadcrumbLink,
  BreadcrumbList,
  BreadcrumbPage,
  BreadcrumbSeparator,
} from "@ldkj/web-ui";

export function Example() {
  return (
    <Breadcrumb separator="/">
      <BreadcrumbList>
        <BreadcrumbItem>
          <BreadcrumbLink href="/">首页</BreadcrumbLink>
        </BreadcrumbItem>
        <BreadcrumbSeparator />
        <BreadcrumbItem>
          <BreadcrumbLink href="/docs">文档</BreadcrumbLink>
        </BreadcrumbItem>
        <BreadcrumbSeparator />
        <BreadcrumbItem>
          <BreadcrumbPage>当前页面</BreadcrumbPage>
        </BreadcrumbItem>
      </BreadcrumbList>
    </Breadcrumb>
  );
}

选项模式:

tsx
import { Breadcrumb } from "@ldkj/web-ui";

export function SimpleExample() {
  return (
    <Breadcrumb
      items={[
        { label: "首页", href: "/" },
        { label: "文档", href: "/docs" },
        { label: "当前页面", current: true },
      ]}
    />
  );
}

API

属性说明类型默认值
separator默认分隔符,会传递给后代 BreadcrumbSeparatorReact.ReactNodeIcon("chevron_right")
items快捷创建面包屑的配置数组BreadcrumbItemConfig[]-
listPropsitems 模式下透传给内部 BreadcrumbList 的属性BreadcrumbListProps-
className追加类名string-
class历史类名别名string-
style内联样式React.CSSProperties-
sxCSS-in-JS 样式入口SxProps-
children内容React.ReactNode-
...rest原生 nav 属性透传React.ComponentPropsWithoutRef<"nav">-
属性说明类型默认值
className追加类名string-
class历史类名别名string-
style内联样式React.CSSProperties-
sxCSS-in-JS 样式入口SxProps-
...rest原生 ol 属性透传React.ComponentPropsWithoutRef<"ol">-
属性说明类型默认值
key列表 keyReact.Key索引
label文本或节点内容React.ReactNode-
href链接地址;未命中当前页时用于生成 BreadcrumbLinkstring-
current是否作为当前页渲染boolean最后一项为 true
separator当前项后面的分隔符React.ReactNode继承 Breadcrumb.separator
ellipsis是否将当前项渲染为省略号booleanfalse
itemProps透传给 BreadcrumbItemBreadcrumbItemProps-
linkProps透传给 BreadcrumbLinkOmit<BreadcrumbLinkProps, "children" | "href">-
pageProps透传给 BreadcrumbPageOmit<BreadcrumbPageProps, "children">-
属性说明类型默认值
className追加类名string-
class历史类名别名string-
style内联样式React.CSSProperties-
sxCSS-in-JS 样式入口SxProps-
children内容节点React.ReactNode-
...rest原生 li 属性透传React.ComponentPropsWithoutRef<"li">-
属性说明类型默认值
component自定义渲染标签或组件React.ElementType"a"
className追加类名string-
class历史类名别名string-
style内联样式React.CSSProperties-
sxCSS-in-JS 样式入口SxProps-
...rest原生 a 属性透传React.ComponentPropsWithoutRef<"a">-
属性说明类型默认值
className追加类名string-
class历史类名别名string-
style内联样式React.CSSProperties-
sxCSS-in-JS 样式入口SxProps-
children内容节点React.ReactNode-
...rest原生元素属性透传React.ComponentPropsWithoutRef<"span">-

行为规则 / 优先级

  • 导航组件应让当前项、禁用项和跳转目标保持一致。
  • classNameclass 用于追加类名;如同时传入原生 style,内联样式会按 React 规则覆盖同名 CSS。
  • 复杂内容优先通过组合能力传入,避免在组件内部硬编码业务文案。
  • Breadcrumb 的默认值应服务于最常见场景,特殊场景通过显式 props 覆盖。

Notes

  • 与路由联动时,建议把路由状态作为单一数据源。
  • 文档 demo 展示的是推荐组合方式;生产代码中可按业务密度调整间距和尺寸。
  • 修改组件能力时需要同步更新本页 Demo、Usage、API 与行为规则。