Breadcrumb 面包屑导航 
面包屑导航用于显示当前页面在网站层级结构中的位置,并提供返回各级的导航能力。
引入 
typescript
import { Breadcrumb, BreadcrumbItem } from '@versakit/vue'使用 
loading
基础用法 
基础的面包屑导航组件,使用 / 作为默认分隔符。
vue
<template>
	<v-breadcrumb>
		<v-breadcrumb-item href="/">首页</v-breadcrumb-item>
		<v-breadcrumb-item href="/components">组件</v-breadcrumb-item>
		<v-breadcrumb-item>面包屑</v-breadcrumb-item>
	</v-breadcrumb>
</template>自定义分隔符 
通过 separator 属性设置自定义分隔符。
vue
<template>
	<v-breadcrumb separator=">">
		<v-breadcrumb-item href="/">首页</v-breadcrumb-item>
		<v-breadcrumb-item href="/components">组件</v-breadcrumb-item>
		<v-breadcrumb-item>面包屑</v-breadcrumb-item>
	</v-breadcrumb>
</template>图标分隔符 
通过 separator-icon 属性设置图标分隔符。
vue
<script setup>
import { h } from 'vue'
// 自定义图标组件
const ChevronRightIcon = {
	name: 'ChevronRightIcon',
	render() {
		return h(
			'svg',
			{
				xmlns: 'http://www.w3.org/2000/svg',
				width: '16',
				height: '16',
				viewBox: '0 0 24 24',
				fill: 'none',
				stroke: 'currentColor',
				strokeWidth: '2',
				strokeLinecap: 'round',
				strokeLinejoin: 'round',
			},
			[
				h('polyline', {
					points: '9 18 15 12 9 6',
				}),
			],
		)
	},
}
</script>
<template>
	<v-breadcrumb :separator-icon="ChevronRightIcon">
		<v-breadcrumb-item href="/">首页</v-breadcrumb-item>
		<v-breadcrumb-item href="/components">组件</v-breadcrumb-item>
		<v-breadcrumb-item>面包屑</v-breadcrumb-item>
	</v-breadcrumb>
</template>禁用状态 
通过 disabled 属性设置禁用状态,禁用的项目将无法点击。
vue
<template>
	<v-breadcrumb>
		<v-breadcrumb-item href="/">首页</v-breadcrumb-item>
		<v-breadcrumb-item disabled href="/components">组件</v-breadcrumb-item>
		<v-breadcrumb-item>面包屑</v-breadcrumb-item>
	</v-breadcrumb>
</template>激活状态 
通过 active 属性设置激活状态,通常用于标识当前页面。
vue
<template>
	<v-breadcrumb>
		<v-breadcrumb-item href="/">首页</v-breadcrumb-item>
		<v-breadcrumb-item href="/components">组件</v-breadcrumb-item>
		<v-breadcrumb-item active>面包屑</v-breadcrumb-item>
	</v-breadcrumb>
</template>自定义样式 
使用 pt 属性自定义组件样式。
vue
<template>
	<v-breadcrumb :pt="{ root: 'bg-gray-100 p-3 rounded' }">
		<v-breadcrumb-item href="/" :pt="{ root: 'text-blue-500' }">
			首页
		</v-breadcrumb-item>
		<v-breadcrumb-item href="/components">组件</v-breadcrumb-item>
		<v-breadcrumb-item>面包屑</v-breadcrumb-item>
	</v-breadcrumb>
</template>无样式模式 
通过 unstyled 属性移除默认样式,完全自定义组件外观。
vue
<template>
	<v-breadcrumb
		unstyled
		:pt="{ root: 'flex p-2 bg-gray-50 rounded', list: 'flex items-center' }"
	>
		<v-breadcrumb-item
			href="/"
			unstyled
			:pt="{
				root: 'text-blue-600 hover:underline',
				separator: 'mx-2 text-gray-400',
			}"
		>
			首页
		</v-breadcrumb-item>
		<v-breadcrumb-item
			href="/components"
			unstyled
			:pt="{
				root: 'text-blue-600 hover:underline',
				separator: 'mx-2 text-gray-400',
			}"
		>
			组件
		</v-breadcrumb-item>
		<v-breadcrumb-item
			unstyled
			:pt="{ root: 'text-gray-800 font-medium', content: 'font-medium' }"
		>
			面包屑
		</v-breadcrumb-item>
	</v-breadcrumb>
</template>自定义分隔符插槽 
使用 separator 插槽自定义分隔符内容。
vue
<template>
	<v-breadcrumb>
		<v-breadcrumb-item href="/">
			首页
			<template #separator>
				<span class="text-red-500 mx-2">•</span>
			</template>
		</v-breadcrumb-item>
		<v-breadcrumb-item href="/components">
			组件
			<template #separator>
				<span class="text-red-500 mx-2">•</span>
			</template>
		</v-breadcrumb-item>
		<v-breadcrumb-item>面包屑</v-breadcrumb-item>
	</v-breadcrumb>
</template>与路由框架集成 
与 Vue Router 集成使用。
vue
<template>
	<v-breadcrumb>
		<v-breadcrumb-item :href="{ path: '/' }">首页</v-breadcrumb-item>
		<v-breadcrumb-item :href="{ path: '/components' }">组件</v-breadcrumb-item>
		<v-breadcrumb-item>面包屑</v-breadcrumb-item>
	</v-breadcrumb>
</template>
<script setup>
import { useRouter } from 'vue-router'
const router = useRouter()
</script>API 
Breadcrumb Props 
| 名称 | 类型 | 默认值 | 说明 | 
|---|---|---|---|
| separator | string | / | 分隔符 | 
| separator-icon | Component | - | 图标分隔符 | 
| unstyled | boolean | false | 是否移除默认样式 | 
| pt | BreadcrumbPT | - | 传递样式类 | 
BreadcrumbItem Props 
| 名称 | 类型 | 默认值 | 说明 | 
|---|---|---|---|
| href | string | - | 链接地址 | 
| disabled | boolean | false | 是否禁用 | 
| active | boolean | false | 是否激活 | 
| unstyled | boolean | false | 是否移除默认样式 | 
| pt | BreadcrumbItemPT | - | 传递样式类 | 
BreadcrumbItem Events 
| 名称 | 参数 | 说明 | 
|---|---|---|
| click | (e: MouseEvent) | 点击事件 | 
BreadcrumbItem Slots 
| 名称 | 参数 | 说明 | 
|---|---|---|
| default | - | 默认内容 | 
| separator | - | 自定义分隔符 | 
类型定义 
ts
export type BreadcrumbProps = {
	separator?: string
	separatorIcon?: string
	unstyled?: boolean
	pt?: BreadcrumbPT
}
export type BreadcrumbPT = {
	root?: string
	list?: string
	separator?: string
	item?: string
}
export type BreadcrumbItemProps = {
	href?: string
	disabled?: boolean
	active?: boolean
	unstyled?: boolean
	pt?: BreadcrumbItemPT
}
export type BreadcrumbItemPT = {
	root?: string
	link?: string
	content?: string
	separator?: string
}无障碍 
- 面包屑导航使用 <nav>元素作为容器,并添加了适当的 ARIA 标签
- 使用 <ol>和<li>元素创建语义化的列表结构
- 当前页面的面包屑项应设置 active属性,以便辅助技术识别
- 禁用的面包屑项应设置 disabled属性,以防止用户交互