v-for双重循环应用

这篇博客主要介绍了如何在Vue.js中处理并渲染从服务器获取的树形结构菜单数据。通过使用v-for指令和条件渲染,分别处理包含和不包含子菜单的一级菜单。对于有子菜单的菜单项,利用el-submenu和el-menu-item组件来构建二级菜单,通过循环遍历children属性来渲染子菜单项。同时,注意template标签的使用和key值的设置,确保每个菜单项都有唯一标识。
摘要由CSDN通过智能技术生成

 树形图上结构的菜单

1.不包含子菜单的一级菜单

2.包含子菜单的一级菜单

现在已经从服务器拿到数据了,需要把数据渲染到页面上,因为这个结构是个树形图,所以写循环不能直接在标签上面写,搞个template标签包起来,把循环写在这里,但是template标签不能写key值,把key值写在其他标签,然后做个判断,如果有子菜单就渲染有子菜单的名字,反之,就渲染没有子菜单的名字

然后在二级菜单再次循环,in item.children,再次渲染数据就可以了

      <!-- template标签无法写key值,所以要把key值写在其他标签 -->
       <template v-for="item in menus">
                <!-- 不包含子菜单的“一级菜单” -->
            <el-menu-item :index='item.indexPath' :key="item.indexPath" v-if="!item.children">
                <i :class="item.icon">
                </i>{{item.title}}
            </el-menu-item>
            <!-- 包含子菜单的“一级菜单” -->
            <el-submenu  :index='item.indexPath' :key="item.indexPath" v-else>
                <template slot="title">
                <i :class="item.icon"></i>
                <span>{{item.title}}</span>
                </template>
                <el-menu-item :index="subItem.indexPath" v-for="subItem in item.children" :key="subItem.indexPath">
                    <i :class="subItem.icon">
                    </i>{{subItem.title}}
                </el-menu-item>
            </el-submenu>
        </template>

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值