vue react 多级菜单动态渲染 导航菜单(一级二级三级不限层级渲染)

20 篇文章 0 订阅

1.创建一个带子菜单的菜单列表MenuUtils.js,如下:

var menus = [
            {
                name:"离线",
                index:"offline",
            },
            {
                name:"日志",
                index:"log",
            }, 
            {
                name:"设置",
                index:"setting", 
                children:[                    
                    {
                        name:"基本配置",
                        index:"setting",                                      
                    },
                   {                {
                        name:"特殊配置",
                        index:"setting3",         
                    },          
            ]     
  },
]

2.封装动态渲染组件item,并导入,在需要的地方引用就可以了.

<template>
    <div>
        <template v-for="item in menus">
            <el-submenu v-if="item.children && item.children.length" :index="item.name" :key="item.name">
                <template slot="title">
                    <span slot="title">{{item.name}}</span>
                </template>
                <item :menus="item.children"></item>
            </el-submenu>
            <el-menu-item v-else :index="item.name" :key="item.name">
                <span slot="title">{{item.name}}</span>
            </el-menu-item>
        </template>
    </div>
</template>
<script>
export default {
    name:"item",
    props:{
        menus:{
            type:Array
        },
        active:String
    },
    data(){
        return {

        }
    },
    mounted(){

    },
    methods:{

    }
}
</script>

3.直接引用封装组件.

<template>
  <div>
    <el-menu
      :collapse="iscollapse"
      :default-active="active.name"
      :unique-opened="true"
      @select="menuSelect"
    >
      <v-menu :menus="menu"></v-menu>
    </el-menu>
  </div>
</template>
<script>
import vMenu from "./menu.vue";
export default {
  components: {
    vMenu,
  },
  props: {},
  data() {
    return {};
  },
  mounted() {},
  methods: {},
};
</script>

有问题可在下方留言 !!!!!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值