问题描述:

在使用 Vue Router 和 ElementUI 中的 el-menu 组件时,当进入子菜单后,父级菜单的高亮状态会丢失。

解决方法:

1.在 el-menu 中设置 router 属性为 true,这样菜单就会自动根据路由信息来高亮。

<el-menu router>
  <el-submenu index="1">
    <template slot="title">一级菜单</template>
    <el-menu-item index="1-1">子菜单一</el-menu-item>
    <el-menu-item index="1-2">子菜单二</el-menu-item>
  </el-submenu>
</el-menu>

2.在路由配置中,为每个路由设置 meta 属性,用来存储菜单的索引值。

const routes = [
  {
    path: '/',
    component: Home,
    meta: { index: 'home' } // 设置菜单索引值为 'home'
  },
  {
    path: '/about',
    component: About,
    meta: { index: 'about' } // 设置菜单索引值为 'about'
  }
]

3.在 el-menu 中使用 v-for 遍历菜单数据,通过 $route.meta.index 和菜单的 index 属性来判断是否需要高亮。

<el-menu router>
  <el-menu-item v-for="menu in menus" :index="menu.index" :key="menu.index"
                :class="{ 'is-active': $route.meta.index === menu.index }"
  >
    {{ menu.title }}
  </el-menu-item>
</el-menu>

这样就可以在进入子菜单后,仍然保持父级菜单的高亮状态了。

Vue Router el-menu children 进入子菜单父级菜单高亮丢失

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

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