今天同事封装一个导航栏的组件,使用的 Element UI 的 NavMenu 组件。
遇到一个问题,如果菜单没有下拉是 <el-menu-item />
标签,而有下拉的是 <el-submenu />
标签。
在循环遍历的时候就出了问题,必须要判断一下是否有二级菜单,并区分展示。
使用 div
包裹,改变组件的标签结果,就会导致报错,无法正常显示。
套一个 template
标签做 v-for
遍历,然后判断是否有二级菜单,并给 <el-submenu />
或 <el-menu-item />
标签 :key="key"
属性。
<el-menu
:default-active="activeIndex"
class="el-menu-demo"
mode="horizontal"
>
<template v-for="item in NavigateItem">
<el-submenu v-if="item.items.length" :index="item.key" :key="item.key">
<template slot="title">
{{ item.title }}
</template>
<el-menu-item
v-for="(items, key) in item.items"
:key="key"
:index="items.key"
>
{{ items.title }}
</el-menu-item>
</el-submenu>
<el-menu-item v-else :index="item.key" :key="item.key">
{{ item.title }}
</el-menu-item>
</template>
</el-menu>
数据部分:
NavigateItem: [
{
title: "首页",
key: "1",
path: "",
items: [],
},
{
title: "找人才",
key: "2",
path: "",
items: [
{
title: "选项1",
key: "2-1",
path: "",
},
{
title: "选项2",
key: "2-2",
path: "",
},
],
},
{
title: "找资金",
key: "3",
path: "",
items: [
{
title: "选项1",
key: "3-1",
path: "",
},
{
title: "选项2",
key: "3-2",
path: "",
},
],
},
{
title: "提身价",
key: "4",
path: "",
items: [
{
title: "选项1",
key: "4-1",
path: "",
},
{
title: "选项2",
key: "4-2",
path: "",
},
],
},
],
未经允许不得转载:w3h5-Web前端开发资源网 » Element UI导航菜单(NavMenu),动态多级菜单实现
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有