一、递归组件的概念

  1. 递归组件:

递归组件简单来说在组件内使用组件本身。这个在vue的项目开发中也是比较常见的。对于一些多级的数据嵌套,如果对于每一层数据都进行for循环嵌套,那会非常繁琐,也很不方便。而如果使用递归组件,就可以一次性解决,嵌套层级简单,可以实现多级列表。

二、递归组件的实现

  1. 父组件的data数据
name: 'Home'
data () {return {list: [{title: '用户管理',children: [{title: '会员用户',children: [{title: '钻石用户'},{title: '白银用户'},{title: '黄金用户'}]},{title: '普通用户'},{title: '超级用户'}]},{title: '订单管理',children: [{title: '订单列表'},{title: '退货列表'}]},{title: '商家管理',children: [{title: '普通商家'},{title: '会员商家'}]},{title: '权限管理',children: [{title: '用户权限'},{title: '管理员权限'}]}]}},
  1. 我们可以先进行第一层数据的遍历,对于父组件,先进行绑定data中的数据list,在父组件调用的时候使用:list="list",然后子组件通过props进行接收数据list,最后通过v-for进行遍历数据,显示第一个层级的数据。完整代码如下:

<template><div><div class="item" v-for="(item, index) of list" :key="index"><div class="item-title border-bottom">{{ item.title }}</div></div></div>
</template><script>
export default {name: 'Detail',props: {list: Array}
}
</script><style lang="stylus" scoped>.item-titleline-height: .8remfont-size: .32rempadding: 0 .2rem.item-childrenpadding: 0 .2rem
</style

显示效果如下图所示

  1. vue中使用递归组件,就是在遍历第一个层级数据的里面,再次使用组件。通过进行v-for遍历数据,子组件再次绑定数据 :list="item.children",进行遍历,这样就实现了递归组件,可以实现层层遍历,实现多级列表。完整代码如下:
<template><div><div class="item" v-for="(item, index) of list" :key="index"><div class="item-title border-bottom">{{ item.title }}</div><!-- 递归组件是指在组件内部调用组件自身 --><div v-if="item.children" class="item-children"><detail :list="item.children"></detail></div></div></div>
</template><script>
export default {name: 'Detail',props: {list: Array}
}
</script><style lang="stylus" scoped>.item-titleline-height: .8remfont-size: .32rempadding: 0 .2rem.item-childrenpadding: 0 .2rem
</style>

显示效果如下图所示

vue中递归组件实现多级列表相关推荐

  1. vue html模板递归,vue使用递归组件实现多级列表

    一.背景需求 在页面上渲染一个多级列表的时候,数据往往也具有多个层级 例如:数组的每个元素都是一个对象,对象中的value可能是一个数组 { "ret": true, " ...

  2. Vue递归组件实现多级列表分类

    Vue递归组件实现多级列表分类 信息的分类展示 数据格式 const treeObj = {name: "电子产品",children: [{name: "电视" ...

  3. VUE递归树形实现多级列表

    VUE递归树形实现多级列表 什么是递归? 简单来说就是在组件中内使用组件本身. 为什么要用递归? 如果出现很多下拉菜单,同级,分级数据,层级混杂,可以使用v-for的嵌套循环不就完事了.对,没毛病这样 ...

  4. ant design vue 中Upload组件如何自定义文件列表的样式

    ant design vue 中Upload组件如何自定义文件列表的样式 问题 历程 UploadList 组件源码 h() 方法 实现 注 问题 技术:vue.ant design vue 在开发项 ...

  5. vue中组件的导出导入_5.2 vue中 keep-alive 组件的作用,详细解释keep-alive使用方法...

    问题:vue中 keep-alive 组件的作用 keep-alive:主要用于保留组件状态或避免重新渲染. 比如: 有一个列表页面和一个 详情页面,那么用户就会经常执行打开详情=>返回列表=& ...

  6. vue的动画封装,vue的递归组件

    在项目中,许多地方会使用到类似的动画,所以我们封装起来会好点,我们先创建一个组件,用来设置它的动画效果, <template><transition name="fade& ...

  7. Vue中父子组件的六种通信方式

    Vue中父子组件的通信方式 一.Props + $emit Props:父传子 父组件Parent.vue: <Child :message="message" @chang ...

  8. vue中父子组件先后渲染_Vue中父子组件执行的先后顺序

    前几天,朋友向我提出了一个关于Vue中父子组件执行的先后顺序问题,相信很多朋友在学习的过程中也会遇到这个问题,所以我就在此提出我自己的一些小看法. 问题如下:请问下图中父子组件执行的先后顺序? 首先, ...

  9. vue中父子组件及 watch用法

    父子组件及 watch vue中父子组件及 watch用法 - coder_zhang123456 - 博客园

最新文章

  1. 如何将文件放到服务器,如何将服务器文件放到云服务器
  2. BERT+CRF的损失函数的研究
  3. 智能实验室-杀马(Defendio) 3.0.0.580 beta 4
  4. 单片机c语言编译软件6,eUIDE下载-单片机c语言编译器 v1.07.32.23 官方版 - 安下载...
  5. Silverlight项目构成
  6. Java线程详解(15)-阻塞队列和阻塞栈
  7. iphone4s解锁_苹果手机忘记密码怎么办?iPhone忘记密码解锁恢复方法
  8. OpenCV如何启用Halide后端以提高效率
  9. sysbench测试mysql性能(TPS、QPS、IOPS)(重要)
  10. webapi+ajax跨域问题及cookie设置
  11. 虚拟机python环境搭载_windows之自动化在虚拟机部署操作系统并自带python环境
  12. 问答| 四轮驱动移动机器人(SSMR)简化模型的虚拟轮间距dLR具体是多少
  13. hprof文件分析工具_应用稳定性优化系列(三),资源泄露问题分析及定位
  14. 互联网大病公益众筹项目文本分析
  15. 你知道手动探针台系统的用途及组成部分吗?
  16. 高等数学(第七版)同济大学 习题2-4 个人解答
  17. 门限回归模型的思想_门限回归汇总与空间门槛回归模型简介
  18. 微信公众号最佳实践 ( 7.5 )股票行情及分析
  19. 终于知道怎么看辐射3的地图了
  20. 高等代数-三阶特征根、特征向量求解详细过程

热门文章

  1. win10滑动关机代码bat_win10设置自动关机和取消自动关机的bat命令
  2. java matcher group方法_Java中正则表达式相关类中Matcher.group()方法
  3. 学习笔记:物料接收到质检库存的几种不同方式
  4. FZU2129 子序列总数 去重
  5. 石墨烯 silvaco_华为官方证实,网传石墨烯电池为谣言
  6. Problem O: 笨熊的盒子
  7. OpenCV C++案例实战六《绿幕视频背景替换》
  8. 人生最大的危机就是没有危机感
  9. 统计学小抄:常用术语和基本概念小结
  10. 解决Ubuntu打不出“|”竖线符号