Vue2面包屑(Breadcrumb)

可自定义设置以下属性:

  • router 的路由数组(routes),必传,类型:Array<{path: string, query?: object, name: string}>,默认 []

  • 面包屑高度(height),类型:number,单位 px,默认 60

  • 自定义分隔符(separator),类型:string,默认 '',默认使用 > 分隔

效果如下图:

①创建面包屑组件Breadcrumb.vue:

<script setup lang="ts">
import { computed } from 'vue'
import { useRouter } from 'vue-router'
interface Route {path: string // 路由地址query?: object // 路由查询参数name: string // 路由名称
}
interface Props {routes: Array<Route> // 或者Route[] router的路由数组,没有 ? 时,即表示 required: trueheight?: number // 面包屑高度separator?: string // 自定义分隔符
}
const props = withDefaults(defineProps<Props>(), {routes: () => [],height: 60,separator: ''
})const len = computed(() => {return props.routes.length
})
const router = useRouter()
function goRouter (route: any): void {router.push({ path: route.path, query: route.query || '' })
}
</script>
<template><div class="m-breadcrumb" :style="`height: ${height}px;`"><div class="m-bread" v-for="(route, index) in routes" :key="index"><a:class="['u-route',{ active: index===len-1 }]"@click="index === len - 1 ? () => false : goRouter(route)":title="route.name">{{ route.name || '--' }}</a><template v-if="index !== len - 1"><span v-if="separator" class="u-separator">{{ separator }}</span><svg v-else class="u-arrow" viewBox="64 64 896 896" data-icon="right" aria-hidden="true" focusable="false"><path d="M765.7 486.8L314.9 134.7A7.97 7.97 0 0 0 302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 0 0 0-50.4z"></path></svg></template></div><div class="assist"></div></div>
</template>
<style lang="less" scoped>
* {box-sizing: border-box;margin: 0;padding: 0;
}
.m-breadcrumb {.m-bread {display: inline-block;vertical-align: middle;.u-route {height: 22px;font-size: 16px;font-weight: 400;line-height: 22px;color: #333;display: inline-block;vertical-align: middle;max-width: 240px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;cursor: pointer;&:hover {color: @themeColor;}}.active {color: @themeColor;cursor: default;}.u-separator {display: inline-block;vertical-align: middle;margin: 0 6px;}.u-arrow {.u-separator();margin: 0 5px;width: 12px;height: 12px;fill: inherit;}}.assist {height: 100%;width: 0;display: inline-block;vertical-align: middle;}
}
</style>

②在要使用的页面引入:

<script setup lang="ts">
import Breadcrumb from './Breadcrumb.vue'
import { ref } from 'vue'
const routes = ref([{path: '/first', // 路由地址query: { id: 1, tab: 2 }, // 路由参数name: '一级路由' // 路由名称},{path: '/second',name: '二级路由'},{path: '/third',name: '三级路由三级路由三级路由三级路由三级路由三级路由三级路由'}])
</script>
<template><div><h2 class="mb10">Breadcrumb 面包屑基本使用</h2><Breadcrumb :routes="routes" :height="36" /><h2 class="mt30 mb10">使用自定义分隔符: / (separator: /)</h2><Breadcrumb :routes="routes" separator="/" :height="36" /></div>
</template>
<style lang="less" scoped>
</style>

Vue3面包屑(Breadcrumb)相关推荐

  1. vue3面包屑导航的制作

    首先有固定的路由表 const routes:Array<RouteRecordRaw> =[{path: '/dashboard',name:'dashboard',meta: {tit ...

  2. Vue2面包屑(Breadcrumb)

    Vue3面包屑(Breadcrumb) 可自定义设置以下属性: router的路由数组(routes),必传,默认为[] 面包屑高度(height),默认60px 自定义分隔符(separator), ...

  3. 后台——侧边和面包屑导航栏设计与实现方案

    一.功能描述 后台管理系统最重要的功能之一无疑是导航的设计,不管是侧边导航栏还是头部面包屑导航栏,导航与路由如何去匹配是开发人员需要去考虑的问题.点击侧边导航栏的某一项可以跳转到当前页面的路由,头部面 ...

  4. react Antd 的面包屑与导航使用例子

    使用面包屑,当点击不同二级导航,显示不同面包屑,代码重点是: 在Layout渲染的页面中: import React from "react"; import "./st ...

  5. vue3 - 仿 element-ui Breadcrumb 面包屑组件封装自己的面包屑组件

    仿 element-ui Breadcrumb 面包屑组件封装自己的面包屑组件 element-ui 面包屑结构 <el-breadcrumb separator="/"&g ...

  6. 改变路径但是不让它跳转_Vue实战047:Breadcrumb面包屑实现导航路径

    前言 在网站中我们经常看到有个导航路径,可以直观地显示当前页面的路径,并快速返回之前的任意页面.这是一个非常实用的功能,也是在Web前端必备的导航UI之一.今天我们借助el-breadcrumb来快速 ...

  7. react+ant design Breadcrumb面包屑组件

    import React from 'react'; import { Link }from 'react-router-dom'; import { Breadcrumb } from 'antd' ...

  8. 一行代码搞定WordPress面包屑导航breadcrumb

    有好几位网友在问WordPress面包屑导航breadcrumb怎么操作,网上有些教程是去function文件中定义,其实不用那么复杂,很简单一行代码就能搞定.下面随ytkah一起来看看.如果是单页, ...

  9. Vue elementUI中的Breadcrumb面包屑

    目录 一.前言 二.组件使用 三.总结 一.前言 面包屑用于显示当前页面的路径,快速返回之前的任意页面. 例如: 二.组件使用 elementUI官网的实例十分简单,并没有配合路由来创建面包屑. 但是 ...

最新文章

  1. 全卷积神经网路【U-net项目实战】U-net网络结构为什么在医学影像分割上表现不错
  2. SQL CE 3.0 与SQL CE 3.5区别
  3. 前端学习(3312):redux的正确构建
  4. oracle中出现会话被锁
  5. 上海 · 百度语义分割Pro沙龙,高性能深度学习实战营
  6. 用JS判断不同分辨率调用不同的CSS样式文件
  7. PHP GD压缩图片
  8. 表单验证 靠name获取
  9. atitit.attilax的软件 架构 理念.docx
  10. 编程时,如何在vs中更换舒服的代码字体
  11. 大乱斗ps4好玩吗_飞刀剑影乱作战:飞刀大乱斗ol游戏小程序,点开既玩
  12. 安装Ubuntu后必须要做的几件事(一)--基础应用篇
  13. 如何在MATLAB下载附加功能(下载Min-GW总结)
  14. RTCP 协议的 NACK 报文
  15. BugTracker配置
  16. python15 文件操作
  17. 颜色空间:RGB,CMY,HSV,HSL,Lab详解(转载)
  18. 影响蜂糖李苗花芽分化的因素
  19. 类,多态,抽象类,接口
  20. Redis | 客户端

热门文章

  1. VS2010:error C2061: 语法错误
  2. 阿里巴巴神马搜索一面
  3. 【Typora丨Windows】图像设置:本地保存PicGo+阿里云OSS图床搭建
  4. OHEM(Online Hard Example Mining)在线难例挖掘(在线困难样例挖掘) HNM (目标检测)
  5. 区块链解读6-区块链框架分析+超级账本(Hyperledger Fabric)基础
  6. centos 服务器传文件,CentOS下怎么用SCP命令进行服务器之间的文件传输?
  7. Window对象详解
  8. Linux终端查看当前时间和时间戳
  9. 『docker笔记』通过docker搭建深度学习环境
  10. Python之我写的第一坨屎