vue制作一个无限层级伸缩树形菜单栏

本文介绍如何使用Vue.js的v-for循环创建多级嵌套菜单,并提供了三级菜单的具体实现方式。通过设置不同级别的文本缩进,使得菜单层次分明。

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

        使用v-for循环生成一个多级嵌套菜单栏,只要你学会了这个方法,几乎所有的菜单栏都可以实现了。

实例1:不能伸缩的多级菜单栏

现在以一个三级菜单栏为例:

<div class="level-one" v-if="obj.level == 1" v-for="obj in bar1"><a>{{obj.title}}</a>
  <div class="level-two" v-if="obj1.parentId == obj.id " v-for="obj1 in bar1"><a>{{obj1.title}}</a>
    <div class="level-three" v-if="obj2.parentId == obj1.id" v-for="obj2 in bar1"><a>{{obj2.title}}</a></div>
  </div>
</div>
.level-one{
  text-indent: 1em;
}
.level-two{
  text-indent: 2em;
}
.level-three{
  text-indent: 3em;
}
bar1:[
  /*所有第一级菜单*/
  {
    title:'一级菜单(1)',
    id:1,             //选项的唯一ID
    parentId:0,       //父级的ID
    level:1           //所处的层级
  },
  {
    title:'一级菜单(2)',
    id:2,
    parentId:0,
    level:1
  },
  {
    title:'一级菜单(3)',
    id:3,
    parentId:0,
    level:1,
  },

  /*所有二级菜单*/
  {
    title:'二级菜单(1.1)',
    id:4,
    parentId:1,
    level:2
  },
  {
    title:'二级菜单(1.2)',
    id:5,
    parentId:1,
    level:2
  },
  {
    title:'二级菜单(2.1)',
    id:6,
    parentId:2,
    level:2
  },
  {
    title:'二级菜单(2.2)',
    id:7,
    parentId:2,
    level:2
  },

  /*所有三级菜单*/
  {
    title:'三级菜单(1.1.1)',
    id:8,
    parentId:4,
    level:3
  },
  {
    title:'三级菜单(1.1.2)',
    id:9,
    parentId:4,
    level:3
  }
]

解释:

1)菜单栏嵌套了多少层,就需要进行多少次v-for循环;

2)通过v-if来选择level=1的选项作为最外层;

3)通过判断选项的parentId等于上一层的id,来确定它是哪个选项的子级菜单;

4)同理,多级菜单,依次进行循环。

实例2:使用element-ui的组件制作一个无限层级树形伸缩菜单栏 

请猛戳这里

(完)

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值