Vue3+Elementplus实现面包屑功能

 更新时间:2023年11月15日 11:02:59   作者:知识浅谈  
这篇文章主要为大家详细介绍了Vue3如何结合Elementplus实现面包屑功能,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以参考下

Vue3+Elementplus引入面包屑功能总结

面包屑(Breadcrumb)是网站或应用程序界面中的一种导航辅助工具,通常以层次结构显示用户当前所在位置的路径。Element Plus 是一个基于 Vue.js 的 UI 组件库,在实现面包屑功能时,可以通过 Element Plus 提供的 Breadcrumb 组件来实现。

在 Element Plus 中使用面包屑功能,首先需要安装并引入 Element Plus 的相关组件。然后,可以通过以下步骤来实现面包屑功能 正菜来了

路由内的内容

因为面包屑是根据路由的内容来显示的

{
    path: "/home",
    name: "home",
    // 懒加载
    component: () => import("../views/home/index.vue"),
    meta: {
      title: "主页",
    },
    children: [
    {
	    path: "/recruitManage",
	    name: "recruitManage",
	    component: () => import("../views/home/childrens/RecruitManage.vue"),
	    meta: {
	      title: "招聘管理",
	      icon: Guide
	    },
	    children: [
	      {
	        path: "/noticeList",
	        name: "noticeList",
	        // 懒加载
	        component: () => import("../views/home/childrens/NoticeList.vue"),
	        meta: {
	          title: "公告管理"
	        },
	      },
	      {
	        path: "/postList",
	        name: "postList",
	        // 懒加载
	        component: () => import("../views/home/childrens/PostList.vue"),
	        meta: {
	          title: "职位管理",
	        },
	      },
	    ]
  	}
 }

开始插入面包屑

温馨提醒:这个有点仔细,请仔细看下去

 <!-- 面包屑(放到你想要放的template中的位置) -->
<el-breadcrumb separator=">">
     <!-- <el-breadcrumb-item :to="{ path: '/home' }">首页</el-breadcrumb-item> -->
     <template v-for="(item, index) in breadList">
       <el-breadcrumb-item
         v-if="item.name"
         :key="index"
         :to="item.path"
       >{{ item.meta.title }}</el-breadcrumb-item>
     </template>
   </el-breadcrumb>
<script setup>
import { useRouter,useRoute } from 'vue-router';

let router = useRouter();
let route = useRoute();

let getMatched=()=>{
  console.log(route.matched);
  breadList.value = route.matched.filter(item => item.meta && item.meta.title);
}
onMounted(()=>{
  getMatched();
})

watch(() => route.path, (newValue, oldValue) => { //监听路由路径是否发生变化,之后更改面包屑
  breadList.value = route.matched.filter(item => item.meta && item.meta.title);
})

</script>

插入内容讲解

第 1 步:导入route,使用其能访问到路由的路径

import { useRouter,useRoute } from 'vue-router';

let router = useRouter();
let route = useRoute();

第 2 步 :编写获取路径的方法 matched获取访问网址在路由中的路径,并过滤掉item没有title的元素,因为需要用title填充面包屑的内容

let getMatched=()=>{
  console.log(route.matched); //打印路径数组
  breadList.value = route.matched.filter(item => item.meta && item.meta.title);
}

第 3 步:页面加载时调用获取路径形成面包屑

onMounted(()=>{
  getMatched();
})

第 4 步 :监听路由发生变化面包屑进行相应的修改

watch(() => route.path, (newValue, oldValue) => { //监听路由路径是否发生变化,之后更改面包屑
  breadList.value = route.matched.filter(item => item.meta && item.meta.title);
})

面包屑引入过程梳理

在 Element Plus 中,面包屑功能主要涉及以下组件和方法:

  • Breadcrumb 组件:面包屑的容器组件,用于包裹 BreadcrumbItem 组件。可以通过 separator 属性设置面包屑分隔符,默认为 /
  • BreadcrumbItem 组件:面包屑的项组件,用于表示每个导航路径的一部分。可以通过插槽(slot)的方式设置每个项的内容,并通过 to 属性设置项的链接地址。
  • 面包屑的数据源:通常使用一个数组来存储面包屑的导航路径信息。每个导航路径都是一个对象,包含两个属性:text 表示项的文本内容,to 表示项的链接地址。
  • 动态生成面包屑:根据页面的路由信息或其他需要显示的路径信息,动态生成面包屑的数据源,然后通过 v-for 指令遍历数据源,动态生成 BreadcrumbItem 组件。
  • 设置当前项:根据页面的当前路由信息,在对应的 BreadcrumbItem 组件上添加一个标识,表示当前所在位置。

通过以上组件和方法的组合使用,可以实现基本的面包屑功能。

以上就是Vue3+Elementplus实现面包屑功能的详细内容,更多关于Vue3 Elementplus面包屑的资料请关注脚本之家其它相关文章!

相关文章

  • vue2.0使用v-for循环制作多级嵌套菜单栏

    vue2.0使用v-for循环制作多级嵌套菜单栏

    这篇文章主要介绍了vue2.0制作多级嵌套菜单栏,主要使用v-for循环生成一个多级嵌套菜单栏,这个方法应用非常广泛,需要的朋友可以参考下
    2018-06-06
  • vue3实现动态路由及菜单

    vue3实现动态路由及菜单

    这篇文章主要介绍了vue3实现动态路由及菜单,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • vue实现组件切换效果的三种功能

    vue实现组件切换效果的三种功能

    这篇文章主要为大家介绍了在Vue中实现组件切换的三种方法,即使用条件渲染,使用动态组件以及通过点击按钮切换组件,有需要的小伙伴可以了解下
    2024-11-11
  • vue print.js打印支持Echarts图表操作

    vue print.js打印支持Echarts图表操作

    这篇文章主要介绍了vue print.js打印支持Echarts图表操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 对Vue- 动态元素属性及v-bind和v-model的区别详解

    对Vue- 动态元素属性及v-bind和v-model的区别详解

    今天小编就为大家分享一篇对Vue- 动态元素属性及v-bind和v-model的区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • vue选项卡切换登录方式小案例

    vue选项卡切换登录方式小案例

    这篇文章主要为大家详细介绍了vue选项卡切换登录方式小案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • vue+elementUI实现表格关键字筛选高亮

    vue+elementUI实现表格关键字筛选高亮

    这篇文章主要为大家详细介绍了vue+elementUI实现表格关键字筛选高亮,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • 解决vue单页面多个组件嵌套监听浏览器窗口变化问题

    解决vue单页面多个组件嵌套监听浏览器窗口变化问题

    这篇文章主要介绍了解决vue单页面多个组件嵌套监听浏览器窗口变化问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • VUE Elemen-ui之穿梭框使用方法详解

    VUE Elemen-ui之穿梭框使用方法详解

    这篇文章主要为大家详细介绍了VUE Elemen-ui之穿梭框使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-09-09
  • vue里面v-bind和Props 利用props绑定动态数据的方法

    vue里面v-bind和Props 利用props绑定动态数据的方法

    今天小编就为大家分享一篇vue里面v-bind和Props 利用props绑定动态数据的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08

最新评论