关于element ui NavMenu 导航菜单 的循环遍历

<template>
  <el-menu
      class="el-menu-vertical-demo"
      @open="handleOpen"
      @close="handleClose"
      background-color="#545c64"
      style="width:12vw"
      text-color="#fff"
      active-text-color="#ffd04b">
        <h3>通用后台管理系统</h3>
        <el-menu-item :index="item.path" v-for="item  in noChildren" :key="item.path" @click="clickMen(item)">
        <i :class="'el-icon-'+item.icon"></i>
        <span slot="title">{{item.label}}</span>
      </el-menu-item>
      <el-submenu :index="v.path" v-for="v in hasChildren" :key="v.path">
        <template slot="title">
          <i :class="'el-icon-'+v.icon"></i>
          <span>{{v.label}}</span>
        </template>
        <el-menu-item-group>
          <el-menu-item :index="sub.path" v-for="sub in v.children" :key="sub.path" @click="clickMen">
            <i :class="'el-icon-'+sub.icon"></i>
            <span>{{sub.label}}</span>

          </el-menu-item>

        </el-menu-item-group>
  
      </el-submenu>
      
    </el-menu>
</template>
<script>
export default {
  data() {
    return {
      navList: [
        {
          path: "/threefloor",
          name: "home",
          label: "首页",
          icon: "s-home",
          url: "Home/Home",
        },
        {
          path: "/fixfloor",
          name: "home",
          label: "列表",
          icon: "s-home",
          url: "Home/Home",
           children: [
            {
              path: "/onefloor",
              name: "home",
              label: "首页",
              icon: "s-home",
              url: "Home/Home",
            },
            {
              path: "/servefloor",
              name: "home",
              label: "首页",
              icon: "s-home",
              url: "Home/Home",
            },
          ],
        },
        
        {
          path: "/fourfloor",
          name: "home",
          label: "数据",
          icon: "s-home",
          url: "Home/Home",
        },
        {
          path: "/test",
          name: "home",
          label: "用户",
          icon: "s-home",
          url: "Home/Home",
          children: [
            {
              path: "/onefloor",
              name: "home",
              label: "首页",
              icon: "s-home",
              url: "Home/Home",
            },
            {
              path: "/servefloor",
              name: "home",
              label: "首页",
              icon: "s-home",
              url: "Home/Home",
            },
          ],
        },
        {
          path: "/nurse",
          name: "home",
          label: "首页",
          icon: "s-home",
          url: "Home/Home",
        },
      ],
    };
  },
  computed:{
      noChildren(){
          return this.navList.filter((item)=>!item.children)
      },
      hasChildren(){
          return this.navList.filter((item) =>item.children)
      },
     
  },
  methods: {
    handleOpen(key, keyPath) {
      console.log(key, keyPath);
    },
    handleClose(key, keyPath) {
      console.log(key, keyPath);
    },
     clickMen(item){
          this.$router.push({path:item.path})
      }
  },
};
</script>

1、data里面把自己要的数据构造好,

2、comput 中判断有没有children

3、用v-for进行遍历

如果你的才华还实现不了你的野心,那就静下心来,埋头苦干。有志者事竟成破釜成舟百二秦关终属楚,苦心人天不负卧薪尝胆三千越甲可吞吴!

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要修改 Element UINavMenu 导航菜单里面选项的样式,可以使用以下两种方法: 1. 使用 Element UI 提供的样式类 在 NavMenu 组件中,每个选项都是一个 el-menu-item 组件,因此你可以使用 Element UI 提供的样式类来修改选项的样式。例如,要修改选项的背景颜色和字体颜色,可以在 CSS 文件中添加以下代码: ``` /* 修改选项的背景颜色 */ .el-menu-item.is-active, .el-menu-item:hover { background-color: #f0f0f0; } /* 修改选项的字体颜色 */ .el-menu-item.is-active a, .el-menu-item:hover a { color: #333; } ``` 2. 自定义 NavMenu 组件的模板 如果你需要更复杂的样式修改,可以自定义 NavMenu 组件的模板,在模板中添加自己的 CSS 样式。具体操作步骤如下: 1)在 Vue 组件中,使用 template 属性自定义 NavMenu 组件的模板,并在模板中添加自己的 CSS 样式。例如: ``` <template> <el-menu class="my-nav-menu"> <template v-for="item in menuData"> <el-menu-item :index="item.index" :key="item.index"> <i :class="item.icon"></i> <span slot="title">{{ item.title }}</span> </el-menu-item> </template> </el-menu> </template> <style scoped> .my-nav-menu { /* 自定义 NavMenu 的样式 */ } .my-nav-menu .el-menu-item { /* 自定义 NavMenu 选项的样式 */ } </style> ``` 2)在 Vue 组件的 script 标签中,使用 components 属性注册自定义的 NavMenu 组件,并在其他组件中使用自定义的 NavMenu 组件。 ``` <script> import { defineComponent } from 'vue'; import MyNavMenu from './MyNavMenu.vue'; export default defineComponent({ name: 'MyApp', components: { 'my-nav-menu': MyNavMenu, }, }); </script> <template> <div> <my-nav-menu :menuData="menuData" /> </div> </template> ``` 通过以上两种方法,你可以灵活地修改 NavMenu 导航菜单里面选项的样式。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值