前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Vue3+Elementplus引入面包屑功能

Vue3+Elementplus引入面包屑功能

作者头像
知识浅谈
发布2023-09-26 08:34:05
发布2023-09-26 08:34:05
72300
代码可运行
举报
文章被收录于专栏:分享学习分享学习
运行总次数:0
代码可运行

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

正菜来了⛳⛳⛳

🎈路由内的内容

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

代码语言:javascript
代码运行次数:0
运行
复制
{
    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: "职位管理",
	        },
	      },
	    ]
  	}
 }

开始插入面包屑🎈

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

代码语言:javascript
代码运行次数:0
运行
复制
 <!-- 面包屑(放到你想要放的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>
代码语言:javascript
代码运行次数:0
运行
复制
<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,使用其能访问到路由的路径

代码语言:javascript
代码运行次数:0
运行
复制
import { useRouter,useRoute } from 'vue-router';

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

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

代码语言:javascript
代码运行次数:0
运行
复制
let getMatched=()=>{
  console.log(route.matched); //打印路径数组
  breadList.value = route.matched.filter(item => item.meta && item.meta.title);
}

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

代码语言:javascript
代码运行次数:0
运行
复制
onMounted(()=>{
  getMatched();
})

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

代码语言:javascript
代码运行次数:0
运行
复制
watch(() => route.path, (newValue, oldValue) => { //监听路由路径是否发生变化,之后更改面包屑
  breadList.value = route.matched.filter(item => item.meta && item.meta.title);
})

🍚总结

以上就是面包屑在vue3和elementplus项目中的应用。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🎈路由内的内容
  • 开始插入面包屑🎈
    • 🍮插入内容讲解
  • 🍚总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档