1.0.2 • Published 7 months ago
@tanzhenxing/zx-breadcrumb v1.0.2
ZX-Breadcrumb 面包屑组件
显示当前页面的路径,快速返回之前的任意页面。参考 Element Plus Breadcrumb 组件设计。
特性
- 🎯 路径导航:清晰显示页面层级关系
- 🔗 路由跳转:支持路由跳转和外部链接
- 🎨 自定义分隔符:支持文字和图标分隔符
- 📏 多种尺寸:large、default、small 三种尺寸
- 🎪 自定义样式:支持自定义颜色和样式
- 🚫 禁用状态:支持整体或单项禁用
- 🧩 插槽支持:支持自定义内容和分隔符
基础用法
<template>
<zx-breadcrumb separator="/">
<zx-breadcrumb-item :to="{ path: '/' }">首页</zx-breadcrumb-item>
<zx-breadcrumb-item to="/promotion">推广管理</zx-breadcrumb-item>
<zx-breadcrumb-item to="/promotion/list">推广列表</zx-breadcrumb-item>
<zx-breadcrumb-item>推广详情</zx-breadcrumb-item>
</zx-breadcrumb>
</template>图标分隔符
通过设置 separator-icon 可使用相应的图标作为分隔符,注意这将使 separator 失效:
<template>
<zx-breadcrumb separator-icon="arrow-right">
<zx-breadcrumb-item :to="{ path: '/' }">首页</zx-breadcrumb-item>
<zx-breadcrumb-item>推广管理</zx-breadcrumb-item>
<zx-breadcrumb-item>推广列表</zx-breadcrumb-item>
<zx-breadcrumb-item>推广详情</zx-breadcrumb-item>
</zx-breadcrumb>
</template>不同尺寸
<template>
<!-- 小号 -->
<zx-breadcrumb size="small">
<zx-breadcrumb-item to="/">首页</zx-breadcrumb-item>
<zx-breadcrumb-item>列表页</zx-breadcrumb-item>
<zx-breadcrumb-item>详情页</zx-breadcrumb-item>
</zx-breadcrumb>
<!-- 默认 -->
<zx-breadcrumb size="default">
<zx-breadcrumb-item to="/">首页</zx-breadcrumb-item>
<zx-breadcrumb-item>列表页</zx-breadcrumb-item>
<zx-breadcrumb-item>详情页</zx-breadcrumb-item>
</zx-breadcrumb>
<!-- 大号 -->
<zx-breadcrumb size="large">
<zx-breadcrumb-item to="/">首页</zx-breadcrumb-item>
<zx-breadcrumb-item>列表页</zx-breadcrumb-item>
<zx-breadcrumb-item>详情页</zx-breadcrumb-item>
</zx-breadcrumb>
</template>自定义颜色
<template>
<zx-breadcrumb
color="#409eff"
active-color="#f56c6c"
separator-color="#909399"
>
<zx-breadcrumb-item to="/">首页</zx-breadcrumb-item>
<zx-breadcrumb-item to="/list">列表页</zx-breadcrumb-item>
<zx-breadcrumb-item>详情页</zx-breadcrumb-item>
</zx-breadcrumb>
</template>外部链接
<template>
<zx-breadcrumb>
<zx-breadcrumb-item href="https://www.example.com" target="_blank">
外部链接
</zx-breadcrumb-item>
<zx-breadcrumb-item>当前页面</zx-breadcrumb-item>
</zx-breadcrumb>
</template>禁用状态
<template>
<!-- 整体禁用 -->
<zx-breadcrumb disabled>
<zx-breadcrumb-item to="/">首页</zx-breadcrumb-item>
<zx-breadcrumb-item>详情页</zx-breadcrumb-item>
</zx-breadcrumb>
<!-- 单项禁用 -->
<zx-breadcrumb>
<zx-breadcrumb-item to="/">首页</zx-breadcrumb-item>
<zx-breadcrumb-item disabled>禁用项</zx-breadcrumb-item>
<zx-breadcrumb-item>详情页</zx-breadcrumb-item>
</zx-breadcrumb>
</template>自定义内容
<template>
<zx-breadcrumb>
<zx-breadcrumb-item to="/">
<zx-icon name="home" size="16" color="#409eff" />
首页
</zx-breadcrumb-item>
<zx-breadcrumb-item>
<template #separator>
<zx-icon name="arrow-right" size="12" color="#c0c4cc" />
</template>
自定义分隔符
</zx-breadcrumb-item>
<zx-breadcrumb-item>详情页</zx-breadcrumb-item>
</zx-breadcrumb>
</template>API 参考
ZxBreadcrumb 属性
| 属性名 | 说明 | 类型 | 可选值 | 默认值 |
|---|---|---|---|---|
| separator | 分隔符 | string | — | / |
| separator-icon | 图标分隔符的组件或组件名 | string | — | — |
| size | 面包屑尺寸 | string | large/default/small | default |
| disabled | 是否禁用整个面包屑 | boolean | — | false |
| color | 文字颜色 | string | — | — |
| active-color | 当前页面颜色 | string | — | — |
| separator-color | 分隔符颜色 | string | — | — |
ZxBreadcrumb 插槽
| 插槽名 | 说明 | 子标签 |
|---|---|---|
| default | 自定义默认内容 | ZxBreadcrumbItem |
ZxBreadcrumbItem 属性
| 属性名 | 说明 | 类型 | 可选值 | 默认值 |
|---|---|---|---|---|
| to | 路由跳转目标,同 vue-router 的 to 属性 | string/object | — | — |
| replace | 如果设置该属性为 true, 导航将不会留下历史记录 | boolean | — | false |
| text | 面包屑项的文字内容 | string/number | — | — |
| disabled | 是否禁用该项 | boolean | — | false |
| color | 文字颜色 | string | — | — |
| href | 链接地址 | string | — | — |
| target | 链接打开方式 | string | _self/_blank | _self |
ZxBreadcrumbItem 事件
| 事件名 | 说明 | 回调参数 |
|---|---|---|
| click | 点击面包屑项时触发 | — |
ZxBreadcrumbItem 插槽
| 插槽名 | 说明 |
|---|---|
| default | 自定义默认内容 |
| separator | 自定义分隔符 |
注意事项
- 路由跳转:组件会自动检测项目中的路由方法(
$zx.route),如果不存在会输出日志 - 当前页面判断:没有
to和href属性的BreadcrumbItem会被视为当前页面 - 外部链接:使用
href属性可以跳转到外部链接,在不同平台有不同的处理方式 - 图标分隔符:当设置
separator-icon时,separator属性会被忽略 - 颜色优先级:单项的
color属性优先级高于父组件的颜色设置
样式变量
如需自定义样式,可以覆盖以下 CSS 变量:
// 默认颜色
$breadcrumb-link-color: #606266;
$breadcrumb-active-color: #909399;
$breadcrumb-separator-color: #c0c4cc;
$breadcrumb-hover-color: #409eff;
// 字体大小
$breadcrumb-small-size: 12px;
$breadcrumb-default-size: 14px;
$breadcrumb-large-size: 16px;
// 间距
$breadcrumb-small-gap: 6px;
$breadcrumb-default-gap: 8px;
$breadcrumb-large-gap: 10px;使用示例
参考 src/pages/components/breadcrumb/ 目录下的示例文件,包含了各种用法的完整演示。