vue递归element中的NavMenu

vue递归element中的NavMenu
父组件

<template>
  <div>
    <el-menu
      :default-active="activeIndex2"
      class="el-menu-demo"
      mode="horizontal"
      @select="handleSelect"
      background-color="#545c64"
      text-color="#fff"
      active-text-color="#ffd04b"
      style="width: 100%; display: inline-flex"
    >
      <submenu-item
        v-for="(route, index) in listNave"
        :key="route.name + index"
        :item="route"
        :base-path="route.name"
      ></submenu-item>
    </el-menu>
  </div>
</template>

<script>
import submenuItem from "./submenuItem";
export default {
  components: { submenuItem },
  data() {
    return {
      activeIndex: "1",
      activeIndex2: "处理中心",
      listNave: [
        { name: "处理中心" },
        {
          name: "我的工作台",
          children: [
            { name: "选项1" },
            { name: "选项2" },
            { name: "选项3" },
            {
              name: "选项4",
              children: [
                { name: "选项1" },
                { name: "选项2" },
                { name: "选项3" },
              ],
            },
          ],
        },
        { name: "消息中心" },
        { name: "订单管理" },
      ],
    };
  },
  methods: {
    handleSelect(key, keyPath) {
      console.log(key, keyPath);
    },
  },
};
</script>

子组件

<template>
  <div>
    <template v-if="!item.children">
      <el-menu-item :index="item.name">
        {{ item.name }}
      </el-menu-item>
    </template>
    <el-submenu :index="item.name" v-else>
      <template slot="title">
        {{ item.name }}
      </template>
      <submenu-item
        v-for="(v, i) in item.children"
        :key="v.name + i"
        :item="v"
        :base-path="v.name" 
      />
    </el-submenu>
  </div>
</template>
<script>
export default {
  name: "submenuItem",
  data() {
    return {};
  },
  props: {
    item: {
      typeof: Object,
      default: () => {},
    },
    // base-path 传参数多余的东西
    basePath: {
      type: String,
      default: "",
    },
  },
};
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值