elementUI 的 navmenu 怎么在 v-for 中 循环不同的标签?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了elementUI 的 navmenu 怎么在 v-for 中 循环不同的标签?相关的知识,希望对你有一定的参考价值。

el-menu这个组件有下级子菜单的标签是el-submenu;单菜单的标签是el-menu-item;怎么用一个数据数组循环出不同的标签呢?

路由跳转(一)组件(NavMenu.vue)调用(app.vue)路由跳转(二)水平效果图区别问题1 刷新页面2 非最后一层,点击可跳转路由3 水平菜单点击多路由时,有轮廓

vue elementui navmenu 多级导航菜单

路由跳转(一)

el-menu标签中的router

参数说明类型可选值默认值router是否使用 vue-router 的模式,启用该模式会在激活导航时以 index 作为 path 进行路由跳转boolean—false

<el-menu router>
组件(NavMenu.vue) 中的路由跳转,:index="navMenu.entity.name"
:default-active="activeIndex"中的activeIndex默认值也要是.entity.name的值
此时菜单数据中的value 没有用到,可以删除。


注意路由变化

组件(NavMenu.vue)

<template> <div class="navMenu"> <template v-for="navMenu in navMenus"> <!-- 最后一级菜单 --> <el-menu-item v-if="!navMenu.childs&&navMenu.entity" :key="navMenu.entity.id" :data="navMenu" :index="navMenu.entity.name" > <i :class="navMenu.entity.icon"></i> <span slot="title">navMenu.entity.alias</span> </el-menu-item> <!-- 此菜单下还有子菜单 --> <el-submenu v-if="navMenu.childs&&navMenu.entity" :key="navMenu.entity.id" :data="navMenu" :index="navMenu.entity.name"> <template slot="title"> <i :class="navMenu.entity.icon"></i> <s
参考技术A <template v-for="item in folder_nodes">
  <el-submenu v-if="item.children"></el-submenu>
  <el-menu-item v-else></el-menu-item>
</template>

element-ui 之 NavMenu 的使用

NavMenu

安装配置

npm install element-ui -S
全局引入

// main.js
import ElementUI from \'element-ui\';
import \'element-ui/lib/theme-chalk/index.css\';
Vue.use(ElementUI)

NavMenu 导航的使用

// src/components/NavMenu
  <el-col :span="24">
    <el-menu
      default-active="2"
      class="el-menu-vertical-demo"
      @open="handleOpen"
      @close="handleClose"
      router
      unique-opened
      >
      <el-submenu index="1">
        <template slot="title">
          <i class="el-icon-location"></i>
          <span>导航一</span>
        </template>
        <el-menu-item-group>
          <template slot="title">分组一</template>
          <el-menu-item index="1-1">选项1</el-menu-item>
          <el-menu-item index="1-2">选项2</el-menu-item>
        </el-menu-item-group>
        <el-menu-item-group title="分组2">
          <el-menu-item index="1-3">选项3</el-menu-item>
        </el-menu-item-group>
        <el-submenu index="1-4">
          <template slot="title">选项4</template>
          <el-menu-item index="1-4-1">选项1</el-menu-item>
        </el-submenu>
      </el-submenu>
      <el-menu-item index="2">
        <i class="el-icon-menu"></i>
        <span slot="title">导航二</span>
      </el-menu-item>
      <el-menu-item index="3" disabled>
        <i class="el-icon-document"></i>
        <span slot="title">导航三</span>
      </el-menu-item>
      <el-menu-item index="4">
        <i class="el-icon-setting"></i>
        <span slot="title">导航四</span>
      </el-menu-item>
    </el-menu>
  </el-col>

以上是NavMenu默认的配置, 我们直接拷贝下来使用即可.后续要添加路由跳转需要配置一些东西, 比如: routerunique-opened

// route/index.js
{
    // 默认展示的页面
    path: \'/\',
    component: ()=> import(\'@/views/Home.vue\'),
    // 要在该组件中跳转并显示对应内容需把组件存在该子路由下
    children: [
        {
            // 这里的 path 和上面 NavMenu 组件中的 index 保持一致
            path: \'1\',
            component: () => import(\'@/views/A.vue\')
        }
    ]
}
完成以上步骤即可实现后台管理的点击后,main 页面的内容跳转(不完整, 后续会继续完善)

以上是关于elementUI 的 navmenu 怎么在 v-for 中 循环不同的标签?的主要内容,如果未能解决你的问题,请参考以下文章

element-ui 之 NavMenu 的使用

在vue中从elementui复制日期选择器怎么不显示

ElementUI的el-table遇到了v-if就抖动

解析elementui 中的v-loading指令

ElementUI使用

NavMenu 可以在 element-ui 中响应吗?