Vue面包屑导航实现方案

这篇博客详细介绍了如何在Vue.js应用中实现面包屑导航。首先,通过在路由配置中添加meta字段来设置每个页面的标题。然后,在面包屑组件中监听路由变化,动态获取并显示当前路径的层级标题。这种方法确保了面包屑导航能随着路由的改变实时更新。
摘要由CSDN通过智能技术生成

面包屑导航实现
1、给路由文件添加meta标签,meta里的title是你想要展示在页面上的,必须和展示的内容一致。

{
        path: '/',
        component:  Home,
        // redirect: '/home'   //重定向 防止页面进来空白  默认选中侧边栏上的文字
        children: [
            {
                path: '/myfile',
                name: 'MyFile',
                meta: {title: '个人中心'},     
                component: () => import('../views/MyFile.vue')
            },
            {
                path: '/user',
                name: 'User',
                meta: {title: '用户管理'},
                component: () => import('../views/User.vue')
            },
            {
                path: '/target',
                name: ' Target',
                meta: {title: '任务管理'},
                component: () => import('../views/Target.vue'),
                children: [
                    {
                        path: '/target/dangers',
                        name: 'Dangers',
                        meta: {title: '紧急任务'},
                        component: () => import('../views/Dangers.vue')
                    },
                    {
                        path: '/target/normal',
                        name: 'Normal',
                        meta: {title: '普通任务'},
                        component: () => import('../views/Normal.vue')
                    }
                ]
            },
        ]
    },

2、在面包屑组件处理逻辑(必须监听,不然无法实时随着路径的改变而改变)

<!--面包屑-->
<template>
    <el-breadcrumb separator="/">
        <el-breadcrumb-item v-for="(item,index) in lists" :key="item.path">          遍历路由信息并展示
            <router-link :to="item.path">{{item.meta.title}}</router-link>
        </el-breadcrumb-item>
    </el-breadcrumb>
</template>

<script>
    export default {
        name: "Breadcrumb",
        data(){
            return{
                lists:[]            //定义一个数组 用于接收路由信息
            }
        },
        created() {
            console.log(this.$route.matched)
          this.lists = this.$route.matched  //获取路由内的全部信息
        },
        //这里必须使用监听,否则无法实时获取路由变动信息。
        监听后路由会实时变动,不然需要手动刷新路径才会改变
        watch:{
          $route(to,from)  {
              console.log(to)
              this.lists = to.matched
          }
        },
    }
</script>

  • 12
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值