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

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

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

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

vue制作一个无限层级伸缩树形菜单栏_第1张图片

.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的组件制作一个无限层级树形伸缩菜单栏 

请猛戳这里

(完)

你可能感兴趣的:(☛,Vue.js,☛,JavaScript(ES6))