Vue组件递归
前言
递归函数简单的定义是:一个自调用函数,这意味着它将在执行的某个时刻调用自己
从理论上讲,递归是一种需要两个属性的行为:
- 结束点:停止递归的情况
- 一组规则:负责将所有的操作减少到结束点
如果没有结束点,递归将成为一个无限循环,但是如果一组规则就不能实现期望的行为,所以两者都存在才能使它正常工作。
场景
树形结构数据渲染页面
- 渲染列表数据的时候,列表的子项还是列表,列表的层级多或者层级不确定
- 在页面上显示文件和子文件但是子文件的数量不确定,同时也不确定子文件中是否还有子文件
举例:组织架构图,文件夹目录,导航菜单,评论列表分级展示
递归组件
在组件中内使用组件本身
代码展示
1 | <template> |
子组件说明
循环体
1 | <div class="item-title">{{ item.name }}</div> |
循环条件
item.children && item.children.length
获取节点数据
- 使用 $emit,将一级节点的 item 传递出去
- 将内层节点的数据传递出去,给组件里面的
Tree
绑定@itemClick="$emit('itemClick', $event)"
使用
1 | <template> |