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. 转 关于 D3D的 SetRenderState 以及AlphaBlend 和AlphaTest
  2. Linux查看端口号是否使用
  3. 根据名字,获取线程,进程。
  4. 活动丨突变!人工智能时代的产品经理
  5. linux启动docker_10分钟快速掌握Docker必备基础知识
  6. 重写toString()方法(Java篇)
  7. 「软件项目管理」软件项目范围计划——需求管理与任务分解
  8. c语言dll创建线程,教大家写一个远程线程的DLL注入,其实还是蛮简单的……………………...
  9. unserialize用法
  10. java(22) - 异常详解
  11. 【科普】什么是TLS1.3
  12. 阶段3 1.Mybatis_04.自定义Mybatis框架基于注解开发_3 基于注解的自定义再分析
  13. TFS使用指南——从服务器上获取最新的项目文件
  14. Android可拖动对话框Dialog
  15. 杀毒软件哪个好?2011年12月(第六次)VB100认证结果出炉
  16. 【Maven】Idea搭建多Module项目修修补补
  17. Ch8 电路噪声学习笔记(一)baker 《CMOS Circuit Design, Layout, and Simulation》
  18. 使用UltraISO制作光盘镜像
  19. Proxy-NCA Loss、Proxy Anchor Loss
  20. 国内哪家公司做网站最好?

热门文章

  1. Spring Boot制作个人博客-后端管理(博客管理)
  2. php使用popover,php中bootstrap框架.popover弹出框,鼠标移动到上面自动显示,离开自动消失...
  3. 计算x-x/2+x/3-x/4+...+x/99-x/100+...,直到最后一项的绝对值小于0.00001为止
  4. 让两个DIV在同一行
  5. 狂扫近300万读者,蟒蛇书升级版即将出版,招募审读人
  6. 抖音视频号情感类短视频爆火,背后有什么特点?有什么值得借鉴
  7. RK3399—设备树
  8. python内置函数min,max
  9. java网络封包_java网络编程(套接字)
  10. Scrapyd 和 Scrapyd-Client