VUE前端從后臺請求過來的數據進行轉換數據結構操作
我就廢話不多說了,大家還是直接看代碼吧`
let label(){let _this = this;let _offset = (_this.pagination.currentPage - 1) * _this.pagination.pageSizelet 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.listlet 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_checkthis.collated_data.get(no).is_check = !is_check// 使用Map數據結構只能這樣更新this.collated_data = new Map(this.collated_data)
重新賦值, 而不是更改引用。
以上這篇VUE前端從后臺請求過來的數據進行轉換數據結構操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。
相關文章: