Skip to content

Breadcrumb 面包屑

面包屑组件,用于显示当前页面的路径。

基础用法

html
<div id="demo-breadcrumb"></div>

<script>
  const breadcrumb = new SaBreadcrumb('#demo-breadcrumb', {
    items: [
      { label: '首页', to: '/' },
      { label: '用户管理', to: '/users' },
      { label: '用户详情' }
    ]
  });
</script>
加载 SanoUI 组件中...
            
          

自定义分隔符

通过 separator 配置自定义分隔符。

html
<div id="demo-breadcrumb-separator"></div>

<script>
  const breadcrumb = new SaBreadcrumb('#demo-breadcrumb-separator', {
    items: [
      { label: '首页', to: '/' },
      { label: '产品', to: '/products' },
      { label: '详情' }
    ],
    separator: '>'
  });
</script>
加载 SanoUI 组件中...
            
          

API

构造函数参数

参数说明类型默认值
container容器选择器或元素string | HTMLElement-
options配置选项SaBreadcrumbOptions{}

配置选项

参数说明类型可选值默认值
items面包屑项数组Array<BreadcrumbItem>-[]
separator分隔符string-'/'
参数说明类型默认值
label面包屑文本string-
to链接地址string-
icon图标string-

方法

方法名说明参数返回值
setItems设置面包屑项items: Array<BreadcrumbItem>void
destroy销毁实例-void

示例代码

手动创建实例

javascript
const breadcrumb = new SaBreadcrumb('#my-breadcrumb', {
  items: [
    { label: '首页', to: '/' },
    { label: '产品管理', to: '/products' },
    { label: '产品列表', to: '/products/list' },
    { label: '产品详情' }
  ],
  separator: '/'
});

// 更新面包屑项
breadcrumb.setItems([
  { label: '首页', to: '/' },
  { label: '新页面' }
]);

实际使用场景

场景 1:页面导航

在页面顶部使用面包屑显示当前页面路径。

html
<div id="page-breadcrumb" style="margin-bottom: 1rem;"></div>
<div style="padding: 2rem; background: #f5f5f5; border-radius: 4px;">
  <h2>用户详情页面</h2>
  <p>这是用户详情页面的内容</p>
</div>

<script>
  const breadcrumb = new SaBreadcrumb('#page-breadcrumb', {
    items: [
      { label: '首页', to: '/' },
      { label: '用户管理', to: '/users' },
      { label: '用户列表', to: '/users/list' },
      { label: '用户详情' }
    ],
    separator: '/'
  });
</script>
加载 SanoUI 组件中...
            
          

场景 2:动态更新面包屑

根据路由变化动态更新面包屑。

html
<div id="dynamic-breadcrumb" style="margin-bottom: 1rem;"></div>
<div style="display: flex; gap: 0.5rem;">
  <button class="sa-button" onclick="goToPage('home')">首页</button>
  <button class="sa-button" onclick="goToPage('products')">产品</button>
  <button class="sa-button" onclick="goToPage('detail')">详情</button>
</div>

<script>
  const breadcrumb = new SaBreadcrumb('#dynamic-breadcrumb', {
    items: [{ label: '首页' }]
  });
  
  function goToPage(page) {
    const items = [{ label: '首页' }];
    
    if (page === 'products') {
      items.push({ label: '产品管理' });
    } else if (page === 'detail') {
      items.push({ label: '产品管理' }, { label: '产品详情' });
    }
    
    breadcrumb.setItems(items);
  }
</script>
加载 SanoUI 组件中...
            
          

Released under the MIT License.