要使Vue Router中的el-menu子菜单在进入子菜单时高亮其父级菜单,可以使用以下步骤:

  1. 首先,需要在Vue Router中设置路由的meta属性,以指定每个路由的菜单信息,例如:
{
  path: '/dashboard',
  component: Dashboard,
  meta: { title: 'Dashboard', icon: 'dashboard' },
  children: [
    {
      path: 'overview',
      component: Overview,
      meta: { title: 'Overview' }
    },
    {
      path: 'users',
      component: Users,
      meta: { title: 'Users' }
    }
  ]
}

在此示例中,我们在路由的meta属性中添加了标题和图标信息,以便在菜单中显示。

  1. 接下来,需要在el-menu组件中使用Vue Router的$route对象来确定当前活动的路由,例如:
<el-menu :default-active="$route.path">
  <el-menu-item v-for="item in menuItems" :key="item.route" :index="item.route">
    <i :class="'el-icon-' + item.icon"></i>
    <span slot="title">{{ item.title }}</span>
  </el-menu-item>
</el-menu>

在此示例中,我们将el-menu的default-active属性设置为$route.path,以便根据当前活动的路由高亮菜单项。

  1. 最后,在el-menu的子菜单中,需要使用$route.matched来确定当前路由是否匹配子菜单的路由,例如:
<el-submenu v-if="item.children" :index="item.route">
  <template slot="title">
    <i :class="'el-icon-' + item.icon"></i>
    <span>{{ item.title }}</span>
  </template>
  <el-menu-item v-for="child in item.children" :key="child.route" :index="child.route" :route="child.route" :class="{ 'is-active': $route.matched.some(route => route.path === child.route) }">
    {{ child.title }}
  </el-menu-item>
</el-submenu>

在此示例中,我们使用$route.matched.some来确定当前路由是否与子菜单的路由匹配,并根据需要添加is-active类来高亮父级菜单。

通过使用上述步骤,您可以确保Vue Router中的el-menu子菜单在进入子菜单时高亮其父级菜单。

Vue Router el-menu 子菜单高亮父级菜单实现方法

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

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