Vue El-Menu 路由进入详情页父级高亮丢失解决方案

在使用 Vue El-Menu 路由进入详情页时,父级高亮丢失是一个常见问题。这通常是因为路由配置中没有正确设置菜单的 active 路由。

解决方法

  1. 在路由配置中,为每个菜单设置对应的 active 路由,例如:
{
  path: '/dashboard',
  component: Dashboard,
  meta: { menu: 'dashboard', active: '/dashboard' },
  children: [
    {
      path: 'info',
      component: DashboardInfo,
      meta: { menu: 'dashboard', active: '/dashboard' },
    },
    {
      path: 'setting',
      component: DashboardSetting,
      meta: { menu: 'dashboard', active: '/dashboard' },
    },
  ],
}
  1. 在 el-menu 组件中,使用 router 的 $route.path 属性来获取当前路由路径,并将其与菜单的 active 路由进行比较,如果相同则设置菜单的高亮状态,例如:
<el-menu :default-active="$route.path">
  <el-menu-item :index="item.path" v-for="item in menuList" :key="item.path" :route="{ path: item.path }">
    <i :class="'el-icon-' + item.icon"></i>
    <span slot="title">{{ item.title }}</span>
  </el-menu-item>
</el-menu>
  1. 在 el-menu-item 组件中,使用 route 属性来保存菜单对应的路由信息,并在点击菜单时,使用 router 的 push 方法来跳转页面,例如:
<el-menu-item :index="item.path" v-for="item in menuList" :key="item.path" :route="{ path: item.path }" @click="handleMenuClick(item)">
  <i :class="'el-icon-' + item.icon"></i>
  <span slot="title">{{ item.title }}</span>
</el-menu-item>

// ...

methods: {
  handleMenuClick(item) {
    this.$router.push(item.path)
  },
},

通过以上三个步骤,就可以解决 Vue El-Menu 路由进入详情页父级高亮丢失的问题。


原文地址: https://www.cveoy.top/t/topic/mHV1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录