VUE前端从后台请求过来的数据进行转换数据结构操作
时间:2021-03-23 09:34:32|栏目:vue|点击: 次
我就废话不多说了,大家还是直接看代码吧`
let label(){ let _this = this; let _offset = (_this.pagination.currentPage - 1) * _this.pagination.pageSize let params ={ offset:_offset,//分页偏移量 limit:_limit,//分页查询数量 } labelView(",params).then(res=>{ _this.list = res.data.data _this.pagination.total = res.data.pagination.total; //转换数据 let treeDataArray = new Array(); const element = _this.list let obj={ name:"", isExpand:true, children:new Array() } treeDataArray.push(obj); for(let dd1 = 0;dd1<_this.list.length;dd1++){ const element = _this.list[dd]; let obj1 ={ root:true, isExpand:true, name:element['model'], children:new Array() } obj.children.push(obj1); for(let dd2 = 0;dd2<element.label.length;dd2++){ const element2 = element.label[dd2]; let obj2 = { name:element['label2'], isExpand:true, children:new Array() }; obj1.children.push(obj2); for(let dd3 = 0;dd3<element2['label3'].length;dd3++){ const element3 = element2['label3'][dd3]; obj2.children.push({ name:element3, }) } } } _this.treeList = treeDataArray;
补充知识:Vue中使用Map数据结构的坑, 直接set 无法触发 双向数据绑定(解决方案)
1. 因为想贯彻es6的使用, 在项目中 多多使用 es6 的特性, 结果Map 的 set 方法去更新数据, 视图无法同步,
故而使用重新设置的方式达到目的, 类似
let obj = Object.assign({},{})
或者
let arr = [].concat['a']
let no = server_no.toString() let is_check = this.collated_data.get(no).is_check this.collated_data.get(no).is_check = !is_check // 使用Map数据结构只能这样更新 this.collated_data = new Map(this.collated_data)
重新赋值, 而不是更改引用。
栏 目:vue
下一篇:详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
本文标题:VUE前端从后台请求过来的数据进行转换数据结构操作
本文地址:http://www.codeinn.net/misctech/86283.html