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
    评论
Element UI提供的导航菜单可以与Vue的路由器(router)结合使用。通过配置路由器,我们可以实现导航菜单的路由跳转和页面切换。 首先,在Vue项目中引入Element UI并配置路由器。你可以参考Element UI官网提供的文档和示例代码。通常,你需要在项目的main.js文件中导入Element UI并使用Vue.use()方法进行注册。 然后,在Vue项目的路由文件中定义路由。你可以使用Vue Router来配置路由和对应的组件。在定义路由时,你可以为每个路由设置一个路径和对应的组件。例如,你可以设置一个名为Home的路由,路径为'/home',对应的组件为HomeComponent。这样,当用户点击导航菜单中的某个选项时,页面将切换到对应的组件。 最后,在导航菜单的模板中使用router-link标签来生成导航链接。你可以在router-link标签中设置to属性,将其设置为对应路由的路径。这样,当用户点击导航菜单中的某个选项时,页面将根据路由跳转到对应的组件,并且在导航菜单中高亮显示该选项。 总结一下,要在Element UI导航菜单中使用路由功能,你需要: 1. 引入Element UI并配置路由 2. 在路由文件中定义路由和对应的组件 3. 在导航菜单的模板中使用router-link标签生成导航链接,并设置to属性为对应路由的路径 希望这个回答对你有帮助!如果还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [ElementUi中NavMenu 导航菜单router用法](https://blog.csdn.net/fun_kunkun/article/details/119183390)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [element-ui使用导航栏跳转路由的用法详解](https://download.csdn.net/download/weixin_38598213/13978020)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值