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面包屑的资料请关注脚本之家其它相关文章!

相关文章

  • vue3的动态组件是如何工作的

    vue3的动态组件是如何工作的

    这篇文章主要介绍了vue3的动态组件是如何工作的,帮助大家更好的理解和学习使用vue框架,感兴趣的朋友可以了解下
    2021-03-03
  • vue时间选择控件的使用方式

    vue时间选择控件的使用方式

    这篇文章主要介绍了vue时间选择控件的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • Vue中 引入使用 babel-polyfill 兼容低版本浏览器的方法

    Vue中 引入使用 babel-polyfill 兼容低版本浏览器的方法

    最近在项目中使用 webpack 打包后升级,用户反馈使用浏览器(chrome 45)访问白屏。经过排查发现:由于 chrome 45 无法兼容 ES6 语法导致的,接下来给大家介绍下Vue中 引入使用 babel-polyfill 兼容低版本浏览器方法,需要的朋友可以参考下
    2023-02-02
  • Vue中代码传送(teleport)的实现

    Vue中代码传送(teleport)的实现

    本文主要介绍了Vue中代码传送(teleport)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • 解决vue $http的get和post请求跨域问题

    解决vue $http的get和post请求跨域问题

    这篇文章主要介绍了解决vue $http的get和post请求跨域问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • vite添加环境变量import.meta.env方式

    vite添加环境变量import.meta.env方式

    Vite通过`import.meta.env`对象暴露环境变量,可以在不同文件中配置不同环境下的变量,便于维护和使用,配置环境变量和模式时,需要注意在字符串中使用`import.meta.env.VITE_APP_TITLE`的方式,避免打包报错
    2026-01-01
  • 使用vite发布app存在的所有问题解决方法

    使用vite发布app存在的所有问题解决方法

    最近项目中使用了vue3+vite开发一个App项,下面这篇文章主要给大家介绍了关于使用vite发布app存在的所有问题的解决方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • vue新玩法VueUse工具库具体用法@vueuse/core详解

    vue新玩法VueUse工具库具体用法@vueuse/core详解

    这篇文章主要介绍了vue新玩法VueUse-工具库@vueuse/core,VueUse不是Vue.use,它是一个基于 Composition API 的实用函数集合,下面是具体的一些用法,需要的朋友可以参考下
    2022-08-08
  • vue项目中自动导入svg并愉快的使用方式

    vue项目中自动导入svg并愉快的使用方式

    这篇文章主要介绍了vue项目中自动导入svg并愉快的使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Vue之插槽的内容渲染问题及解决过程

    Vue之插槽的内容渲染问题及解决过程

    本文将探讨这些常见问题的原因,并提供相应的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03

最新评论