element ui 菜单 动态生成 导航

1. 利用饿了么ui 的 导航菜单组件 (el-menu)来结合 后台返回的 菜单数组进行循环嵌套。

2.看如下代码

 <el-menu
        :default-active="activeIndex2"
        :unique-opened="true"   
        mode="horizontal"
        @select="handleSelect"
        background-color="#3b72c5"
        text-color="#fff"
        active-text-color="#9DD9FF">
        <template v-for="(item,index) in items">
         //判断一级菜单里面是否有二级菜单
          <template v-if="item.children.length!=0">
                //id如果是数字的需加上''               
                  <el-submenu  :index="item.id+''" :key="index"                    
                     @click.native="openMenu(item,index)">
                    <template>
                       <i :class="item.icon"></i>
                       <span slot="title">{{ item.label }}</span>
                    </template>
                      //判断是否有三级菜单
                    <template v-for="(subItem,idx) in item.children">
                      <el-submenu
                          v-if="subItem.children.length!=0"
                          :index="subItem.id+''"
                          :key="idx">
                          <template slot="title">{{ subItem.label }}</template>
                          <el-menu-item
                              v-for="(threeItem,i) in subItem.children"
                              @click.native="openMenu1(threeItem,i)"
                              :key="i"
                              :index="threeItem.id+''">{{ threeItem.label }}</el-menu-    
                        item>
                      </el-submenu>
                    
                    //二级菜单
                      <el-menu-item
                          v-else
                          :index="subItem.id+''"
                          :key="idx"
                          @click.native="openMenu1(subItem,idx)"
                          >{{ subItem.label }}
                      </el-menu-item>
                    </template>  
                 </el-submenu>
          </template > 

          <!-- //一级菜单 -->
          <template v-else>
              <el-menu-item  :index="item.id+''"  :key="index" 
                   @click.native="openMenu(item,index)"    id="leftMenuItem"   
                >
                 <!-- <template slot="title" >
                  <i :class="item.icon" style="color:#fff;font-size:14px;"  v- 
                        bind:style="'color:'+(index==activeIndex2?'#9dd9ff':'#fff')"/>
                  <span style="font-size:14px;"  
                          :class="index==activeIndex2?'activ1':'activ2'"> </span>
                </template>  -->
                 {{ item.label }}
                </el-menu-item>   
          </template>
        
        </template>
   
</el-menu>

3.这样可以给每一级菜单单独添加事件,对某些需求有重要的作用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值