vue-router meta(2)页面进入详情页面时,无子项导航栏时,该菜单未高亮。

本文介绍了一种在Vue项目中解决导航栏高亮显示的方法。通过在路由配置中添加属性并调整el-menu组件的默认激活路径,使得在详情页也能正确高亮相应的菜单项。

原因

管理系统,左侧导航栏有个单级的菜单(无子一级的菜单),进入后页面显示的是具体的房间列表。点击具体的房间可以进入房间详情页面,展示具体的房间数据。这时页面路由发生变化。发现,导航栏中不存在高亮的选项。

进入导航栏页面

<el-menu
	....//其他配置项
	:default-active="$route.path"
	....
 </el-menu>

上述列表项

<el-menu-item index="/roomIndex">
      <span slot="title" class="roomListIcon">
          <span>房间列表</span>
      </span>
  </el-menu-item>

而进入的房间详情页面在vue router 配置页面为

{
      path: '/roomIndex',
      name: 'RoomIndex',
      component: RoomIndex,
      meta: { },
 },
{
      path: '/roomDetail/:roomId',
      name: 'Roomdetail',
      component: Roomdetail,
      meta: {}
}

这样就可以看到,是因为el-menu 高亮显示的是 $route.path 。当页面进入到详情页面中,el-menu 没找到对应的path 导致没有高亮的选项。

解决

在router的配置页面

{
      path: '/roomIndex',
      name: 'RoomIndex',
      component: RoomIndex,
      meta: { },
 },
{
	path: '/roomDetail/:roomId',
    name: 'Roomdetail',
    component: Roomdetail,
    meta: {
		belong: "/roomIndex"
	}
}
// 这里给详情页面上的meta 中添加一个属性
//该熟悉的值保持和列表页面的path一致

并且对 导航栏文件中 el-menu 的配置做修改

<el-menu
	....//其他配置项
	:default-active="$route.meta.belong ? $route.meta.belong:$route.path"
	....
 </el-menu>

这样就可以保持页面在详情页面中时,就算导航栏中没有对应的菜单也可以高亮。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

余九月丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值