×

vue技巧:v-for循环生成一个多级嵌套菜单栏

作者:ceshi2021.12.21来源:Web前端之家浏览:7301评论:0
关键词:vuejs

分享一个vue技巧:v-for循环生成一个多级嵌套菜单栏。我们直接上代码:

  1. <div class="level-one" v-if="obj.level == 1" v-for="obj in bar1"><a>{{obj.title}}</a> 
  2.  <div class="level-two" v-if="obj1.parentId == obj.id " v-for="obj1 in bar1"><a>{{obj1.title}}</a> 
  3.   <div class="level-three" v-if="obj2.parentId == obj1.id" v-for="obj2 in bar1"><a>{{obj2.title}}</a></div> 
  4.  </div> 
  5. </div> 
  6.  
  7. level-one{ 
  8.  text-indent: 1em; 
  9. level-two{ 
  10.  text-indent: 2em; 
  11. level-three{ 
  12.  text-indent: 3em; 
  13.  
  14. bar1:[ 
  15.  /*所有第一级菜单*/ 
  16.  { 
  17.   title:'一级菜单(1)', 
  18.   id:1,       //选项的唯一ID 
  19.   parentId:0,    //父级的ID 
  20.   level:1      //所处的层级 
  21.  }, 
  22.  { 
  23.   title:'一级菜单(2)', 
  24.   id:2, 
  25.   parentId:0, 
  26.   level:1 
  27.  }, 
  28.  { 
  29.   title:'一级菜单(3)', 
  30.   id:3, 
  31.   parentId:0, 
  32.   level:1, 
  33.  }, 
  34.  /*所有二级菜单*/ 
  35.  { 
  36.   title:'二级菜单(1.1)', 
  37.   id:4, 
  38.   parentId:1, 
  39.   level:2 
  40.  }, 
  41.  { 
  42.   title:'二级菜单(1.2)', 
  43.   id:5, 
  44.   parentId:1, 
  45.   level:2 
  46.  }, 
  47.  { 
  48.   title:'二级菜单(2.1)', 
  49.   id:6, 
  50.   parentId:2, 
  51.   level:2 
  52.  }, 
  53.  { 
  54.   title:'二级菜单(2.2)', 
  55.   id:7, 
  56.   parentId:2, 
  57.   level:2 
  58.  }, 
  59.  /*所有三级菜单*/ 
  60.  { 
  61.   title:'三级菜单(1.1.1)', 
  62.   id:8, 
  63.   parentId:4, 
  64.   level:3 
  65.  }, 
  66.  { 
  67.   title:'三级菜单(1.1.2)', 
  68.   id:9, 
  69.   parentId:4, 
  70.   level:3 
  71.  } 
  72. ]

解释:

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

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

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

大家可以放到开发软件里试试吧。

您的支持是我们创作的动力!
温馨提示:本文作者系 ,经Web前端之家编辑修改或补充,转载请注明出处和本文链接:
https://jiangweishan.com/article/vuejs20211221a2.html

网友评论文明上网理性发言 已有0人参与

发表评论: