Breadcrumb 路径导航
用于路径导航场景的 MoriUI 组件。
导入
import { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from 'moriui'
示例
概览
面包屑导航展示页面层级。
<script setup lang="ts">
import {
Breadcrumb,
BreadcrumbItem,
BreadcrumbLink,
BreadcrumbList,
BreadcrumbPage,
BreadcrumbSeparator
} from 'moriui'
</script>
<template>
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink href="/">
首页
</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbLink href="/docs">
文档
</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbLink href="/docs/components">
组件
</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbPage>按钮</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>
</template>
基础
简单的路径导航链接。
<script setup lang="ts">
import {
Breadcrumb,
BreadcrumbItem,
BreadcrumbLink,
BreadcrumbList,
BreadcrumbPage,
BreadcrumbSeparator
} from 'moriui'
</script>
<template>
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink href="/">
首页
</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbLink href="/docs">
文档
</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbPage>组件</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>
</template>
自定义分隔符
替换默认分隔图标。
<script setup lang="ts">
import { ChevronRight } from '@lucide/vue'
import {
Breadcrumb,
BreadcrumbItem,
BreadcrumbLink,
BreadcrumbList,
BreadcrumbPage,
BreadcrumbSeparator
} from 'moriui'
</script>
<template>
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink href="/">
首页
</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator>
<ChevronRight class="size-3.5" />
</BreadcrumbSeparator>
<BreadcrumbItem>
<BreadcrumbLink href="/docs">
文档
</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator>
<ChevronRight class="size-3.5" />
</BreadcrumbSeparator>
<BreadcrumbItem>
<BreadcrumbPage>组件</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>
</template>
链接
使用 BreadcrumbLink 构建导航。
<script setup lang="ts">
import {
Breadcrumb,
BreadcrumbItem,
BreadcrumbLink,
BreadcrumbList,
BreadcrumbPage,
BreadcrumbSeparator
} from 'moriui'
</script>
<template>
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink href="/">
首页
</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbLink href="/docs">
文档
</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbLink href="/docs/components">
组件
</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbPage>面包屑</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>
</template>
省略
使用 BreadcrumbEllipsis 折叠长路径。
<script setup lang="ts">
import {
Breadcrumb,
BreadcrumbEllipsis,
BreadcrumbItem,
BreadcrumbLink,
BreadcrumbList,
BreadcrumbPage,
BreadcrumbSeparator
} from 'moriui'
</script>
<template>
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink href="/">
首页
</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbEllipsis />
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbLink href="/docs/components">
组件
</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbPage>面包屑</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>
</template>
菜单
Ellipsis 配合 DropdownMenu 展开路径。
<script setup lang="ts">
import { ChevronDown } from '@lucide/vue'
import {
Breadcrumb,
BreadcrumbItem,
BreadcrumbLink,
BreadcrumbList,
BreadcrumbPage,
BreadcrumbSeparator,
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuTrigger
} from 'moriui'
</script>
<template>
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink href="/">
首页
</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<DropdownMenu>
<DropdownMenuTrigger as-child>
<button class="flex items-center gap-1">
组件
<ChevronDown class="size-3.5" />
</button>
</DropdownMenuTrigger>
<DropdownMenuContent align="start">
<DropdownMenuItem>文档</DropdownMenuItem>
<DropdownMenuItem>主题</DropdownMenuItem>
<DropdownMenuItem>GitHub</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbPage>面包屑</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>
</template>
RTL
从右到左的面包屑导航。
<script setup lang="ts">
import {
Breadcrumb,
BreadcrumbItem,
BreadcrumbLink,
BreadcrumbList,
BreadcrumbPage,
BreadcrumbSeparator,
DirectionProvider
} from 'moriui'
</script>
<template>
<DirectionProvider dir="rtl">
<Breadcrumb dir="rtl">
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbLink href="/">
الرئيسية
</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbLink href="/docs">
التوثيق
</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator />
<BreadcrumbItem>
<BreadcrumbPage>المكونات</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>
</DirectionProvider>
</template>
使用说明
组合方式
Breadcrumb 通过 List 组织 Item,Item 内为 Link 或 Page 表示当前页;Separator 和 Ellipsis 分别处理分隔与折叠。
自定义分隔符
BreadcrumbSeparator 的默认插槽可替换为任意分隔图标。
省略菜单
BreadcrumbEllipsis 可配合 DropdownMenu 展开被折叠的路径。
RTL
面包屑沿 dir 逻辑方向排列,分隔符方向随之调整。
变体
Breadcrumb 没有视觉变体;各子组件通过 class 自定义间距和颜色。
可访问性
Breadcrumb 默认输出 role="navigation" 和 aria-label="Breadcrumb",列表使用 role="list" 和 role="listitem"。当前页使用 BreadcrumbPage 且 aria-current="page"。链接有清晰目的名称。
API 参考
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
BreadcrumbList class | HTMLAttributes["class"] | undefined | 合并到列表容器的调用方类。 |
BreadcrumbItem class | HTMLAttributes["class"] | undefined | 合并到列表项的调用方类。 |
BreadcrumbLink href | string | — | 导航链接目标地址。 |
BreadcrumbLink as / asChild | string | Component / boolean | 'a' / false | 渲染为其他路由组件。 |
BreadcrumbPage class | HTMLAttributes["class"] | undefined | 表示当前页的文字。 |
BreadcrumbSeparator class | HTMLAttributes["class"] | undefined | 合并到分隔符的调用方类。 |
BreadcrumbEllipsis class | HTMLAttributes["class"] | undefined | 合并到省略按钮的调用方类。 |