vue如何用element做一个多级目录树

本文介绍了如何使用Vue创建一个名为`Moduletree`的组件,用于展示递归的导航菜单。组件内部通过v-for指令遍历数据,并根据child属性进行条件判断,使用el-submenu和el-menu-item元素来呈现层级结构。当child存在且长度大于0时,递归调用自身显示子菜单;否则,显示为一级菜单项。在父组件中,通过将数据传递给`Moduletree`组件来实现菜单的动态渲染。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

知识点:组件可以自身引用,采用该方法可以通过条件判断完成递归调用。

element组件:NavMenu 导航菜单 el-submenu el-menu-item

一、新建组件,方便递归调用。

1.template

<template>
  <div>
    <template v-for="item in data">
      <template v-if="item.child && item.child.length > 0">
        <el-submenu :key="item.id" :index="item.id">
          <template slot="title">
            <span @click="showContent(item)">{{ item.name }}</span>
          </template>
          <Moduletree :data='item.child'></Moduletree>
        </el-submenu>
      </template>
      <template v-else>
        <el-menu-item :key="item.id" :index="item.id">
          <i class="el-icon-menu"></i>
          <span slot="title" @click="showContent(item)">{{ item.name }}</span>
        </el-menu-item>
      </template>
    </template>
  </div>
</template>

2.script

<script>
export default {
    name: 'BdjwPlanWebModuletree',

    data() {
        return {
            
        };
    },
//这里是要接受的参数,从父组件发送
    props:['data'],
    mounted() {
        
    },

    methods: {
        
    },
};
</script>

组件已经完成。

二、父组件传值

1.父组件引入

import Tree from '../programmer/component/moduleTree.vue'

2.在script中注册

components:{
      Tree
  },

3.调用,开始循环

<Tree :data='goal'></Tree>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值