Vue基于el-breadcrumb实现面包屑功能(操作代码)
更新时间:2023年09月06日 16:28:28 作者:别改我bug
这篇文章主要介绍了Vue基于el-breadcrumb实现面包屑功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
vue3 + elementPlus 实现面包屑功能
文章后面附效果图
数据结构
首先展示一下数据基础结构
红色框框是默认存在的数据,其他数据就是通过选中侧边栏菜单进行数据插入
关键数据字段为 path, meta
准备侧边栏
首先需要自己准备一个侧边栏这边就不进行讲解,上个效果图
实现面包屑代码
<template> // 面包屑组件, separator为分割线,具体可以去elementPlus官网查看 <el-breadcrumb separator="/"> <div class="breadcrumb-content"> // 动画组件 [官网链接](https://cn.vuejs.org/guide/built-ins/transition.html) <transition-group name="breadcrumb"> <el-breadcrumb-item class="breadcrumb-item" v-for="item in arr.breadCrumbList" :key="item.path"> <span v-if="item.redirect === route.path"> {{ item.meta.title }} </span> <a v-else @click="handleLine(item)">{{ item.meta.title }}</a> </el-breadcrumb-item> </transition-group> </div> </el-breadcrumb> </template> <script setup lang="ts"> const router = useRouter(); // 面包屑数据 let arr = reactive({ breadCrumbList: [], }); const route = useRoute(); // 获取面包屑数据 const getBreadcrumbList = () => { arr.breadCrumbList = []; route.matched.forEach((item) => { if (item.meta.title) arr.breadCrumbList.push(item); }); // 判断是否存在首页默认数据,不存在就插入到数据首位 if (!arr.breadCrumbList.length || arr.breadCrumbList[0].name !== "Dashboard") arr.breadCrumbList.unshift({ path: "/dashboard/index", meta: { title: "首页" }, }); }; getBreadcrumbList(); // 监听路由变化 watch(route, () => { getBreadcrumbList(); }); // 面包屑跳转 const handleLine = ({ redirect, path }) => { redirect ? router.push(redirect) : router.push(path); }; </script> <style lang="less" scoped> .el-breadcrumb { display: flex; padding-left: 10px; line-height: 50px; background-color: #f6f6f6; } .breadcrumb-item { margin-left: 8px; } .breadcrumb-content { position: relative; } .breadcrumb-enter-active, .breadcrumb-leave-active { transition: all 0.5s; } .breadcrumb-enter-from, .breadcrumb-leave-active { opacity: 0; } .breadcrumb-move { transition: all 0.5s; } .breadcrumb-leave-active { position: absolute; right: -50px; } </style>
效果图
到此这篇关于Vue基于el-breadcrumb实现面包屑功能的文章就介绍到这了,更多相关vue面包屑内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
vue项目如何从session中获取对象,并且使用里面的属性
这篇文章主要介绍了vue项目如何从session中获取对象,并且使用里面的属性问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-12-12vue后端传文件流转化成blob对象,前端点击下载返回undefined问题
这篇文章主要介绍了vue后端传文件流转化成blob对象,前端点击下载返回undefined问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-12-12解决v-for中使用v-if或者v-bind:class失效的问题
今天小编就为大家分享一篇解决v-for中使用v-if或者v-bind:class失效的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-09-09在elementui中Notification组件添加点击事件实例
这篇文章主要介绍了在elementui中Notification组件添加点击事件实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-11-11
最新评论