关于动态变换的路由怎么确定面包屑导航

关于动态变换的路由怎么确定面包屑导航

今天写不完,先占个坑
最近在写一个项目,发现项目的侧边栏不是固定的,且层级比较深,在路由页面做不到 固定meta下面的title,但是呢,不能因为这点事情,就不写面包屑了。下面就开始吧

路由基本上构成是 xxx/:id/:sid/:tid 这个形式的,每个id 对应的name 才是我们需要放在面包屑中的路由

在 route.index.js 文件中,xxx/:id 是一个文件,xxx/:id/:sid 是一个文件, xxx/:id/:sid/:tid 是一个文件 这样多个使用的时候,就不会相同,这里面包屑导航就有点问题

这个时候,我们要确定的是,我们需要在什么地方去改变里面的title

前面怎么拿到面包屑的我就不写了,百度很多的,下面说一下,我们拿到面包屑 的数组list 的时候,我们判断一下

就有了下面的代码

// 下面的目标name 怎么拿到,就自己去找方法了 使用 route vuex 缓存 都可以。 
this.list.forEach((element, index) => {
   if (element.path === '/xxx/:id') {
     element.meta.title = '目标name'
   }
   if (element.path === '/xxx/:id/:sid') {
     element.meta.title = '目标name'
   }
   if (element.path === '/xxx/:id/:sid/:tid') {
     element.meta.title = '目标name'
   } 
 })

以上就能得到自己想要的了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue和Element UI的后台管理系统中,通常使用面包屑来指示当前所处的页面。一般情况下,我们会使用路由信息中的meta.title作为面包屑的标题。但是当遇到编辑和新增公用同一个页面的情况时,我们需要动态修改标题。有一种方法是在路由守卫中判断是否有id,来动态修改meta中的title。但是这种方法不太好,因为其他人在维护代码时可能不知道这样的设置,导致可维护性较差。另外,还需要让显示面包屑的组件支持动态修改meta.title,比较麻烦。 解决这个问题的一个巧妙方法是通过配置两个路由,指向同一个页面。如下所示: ``` { path: 'save', name: 'teamCreate', meta: { title: '新增成员', hideInMenu: true }, component: () => import('@/views/team/save.vue') }, { path: 'save/:id', name: 'teamEdit', meta: { title: '编辑成员', hideInMenu: true }, component: () => import('@/views/team/save.vue') } ``` 通过这种方式,我们可以在不同的路由中设置不同的meta.title,从而实现动态修改面包屑的标题。 另外,如果需要在客户列表点击跳转至客户的订单页面,并以被点击客户的信息直接查询,但希望面包屑的标题与普通打开订单页面的标题保持一致,可以使用类似的方法。在order/index.vue中可以通过this.$route.params.customerName来获取被点击客户的信息,并设置面包屑的标题。但是需要注意的是,导航栏的结果可能要在下一次打开同一个页面才会渲染出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值