1.实现数组转树
把后端传过来的平铺数组数据处理为tree组件需要的树形数据
1.1 在src/utils/index.js 文件中添加一个arrayToTree函数 在里面建立映射关系 并给每个元素补充children属性
- 映射关系: 目的是让我们能通过id快速找到对应的元素
- 补充children:让后边的计算更方便
list.forEach(item=>{
item.children = []
map[item.id] = item
})
// console.log('map',map)
1.2 对于每一个元素来说,先找它的上级
- 如果能找到,说明它有上级,则要把它添加到上级的children中去
- 如果找不到,说明它没有上级,直接添加到 treeList
list.forEach(item=>{
// 对于每一个元素来说,先找它的上级
// 如果能找到,说明它有上级,则要把它添加到上级的children中去
// 如果找不到,说明它没有上级,直接添加到 treeList
const pid = item.pid
const obj = map[pid]
//如果存在则表示item 不是一级数据
if(obj){
obj.children.push(item)
}else{
//不存在对应的pid说明他有上级数据
treeList.push(item)
}
})
1.3 使用工具函数处理数据 在文件中引入arrayToTree 将请求回来的数据放入 存入list</