【发布时间】:2019-08-26 12:14:00
【问题描述】:
我正在将旧的 MVC 代码移至 Vue。我有一个对象数组 A(计数 > 60),这些对象包含一个嵌套的对象数组 B。
数组 A = [{name: A, arrayB: B}, ...{}]
基于搜索文本,我正在过滤内部数组B中的项目。
我尝试使用此模式https://codepen.io/AndrewThian/pen/QdeOVa,并使用计算过滤列表。但是,这比我的 vanilla JS 运行速度要慢得多,后者循环整个列表并设置可见性:隐藏和高度:0。特别是,当我清除搜索文本时,它似乎运行非常缓慢,添加所有元素桌子放回去了。
过滤列表(){ if (this.searchText == "") return this.categories;
let filteredArray = new Array();
this.A.forEach(outerElement=> {
let innerObj = new Object();
innerObj.Name= outerElement.Name;
innerObj.List= new Array();
outerElement.List.forEach(innerElement=> {
if (innerElement.Name.toLowerCase().includes(this.searchText.toLowerCase())) {
//show = true;
innerObj.List.push(innerElement);
}
})
if (innerObj.List != undefined && innerObj.List.length > 0) filteredArray.push(innerObj);
})
return filteredArray;
}
有没有更好的方法来有效地过滤 Vue 中的嵌套数据表? V-show 也比我的香草版本慢得多。我看到的所有东西似乎都不是为此而设计的。
【问题讨论】:
标签: javascript vue.js model-view-controller