在使用 Vue el-menu 组件进行路由跳转时,可能会出现父级菜单高亮丢失的问题。这是因为 el-menu 默认只会高亮当前路由对应的菜单项,而不会高亮其父级菜单项。

解决方法:

  1. 在 el-menu 组件中添加 default-active 属性,并设置为当前路由路径,例如:
<el-menu default-active='/home'>
  <el-menu-item index='/home'>首页</el-menu-item>
  <el-submenu index='/product'>
    <template slot='title'>产品</template>
    <el-menu-item index='/product/list'>产品列表</el-menu-item>
    <el-menu-item index='/product/detail'>产品详情</el-menu-item>
  </el-submenu>
</el-menu>
  1. 在路由配置中添加 meta 属性,用于指定路由对应的菜单项的索引值,例如:
const routes = [
  {
    path: '/home',
    component: Home,
    meta: { index: '/home' }
  },
  {
    path: '/product/list',
    component: ProductList,
    meta: { index: '/product/list' }
  },
  {
    path: '/product/detail',
    component: ProductDetail,
    meta: { index: '/product/detail' }
  }
]
  1. 在 el-menu 组件中添加 router 属性,将其值设置为 true,表示开启路由模式,例如:
<el-menu default-active='/home' router>
  <el-menu-item index='/home'>首页</el-menu-item>
  <el-submenu index='/product'>
    <template slot='title'>产品</template>
    <el-menu-item index='/product/list'>产品列表</el-menu-item>
    <el-menu-item index='/product/detail'>产品详情</el-menu-item>
  </el-submenu>
</el-menu>
  1. 在 el-menu 组件中添加 router-link 组件,用于实现路由跳转,例如:
<el-menu default-active='/home' router>
  <router-link to='/home'>
    <el-menu-item index='/home'>首页</el-menu-item>
  </router-link>
  <el-submenu index='/product'>
    <template slot='title'>产品</template>
    <router-link to='/product/list'>
      <el-menu-item index='/product/list'>产品列表</el-menu-item>
    </router-link>
    <router-link to='/product/detail'>
      <el-menu-item index='/product/detail'>产品详情</el-menu-item>
    </router-link>
  </el-submenu>
</el-menu>

以上是解决 el-menu 路由进入详情页父级高亮丢失的方法。通过设置 default-active 属性和 meta 属性,以及使用 router 属性和 router-link 组件,可以实现 el-menu 组件在路由跳转时,同时高亮其父级菜单项。

Vue el-menu 路由跳转详情页父级菜单高亮丢失解决方案

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

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