优化-我的小程序有一项是一次渲染一个数组的很多数据,
这是我的项目,一次有200个输出渲染
Audits体检有一项是"建议一个页面使用少于 1000 个 WXML 节点,节点树深度少于 30 层,子节点数不大于 60 个。一个太大的 WXML节点树会增加内存的使用,样式重排时间也会更长"
这是我的项目一次渲染了很多,解决方案是把数组拆分成二维数组,下面是拆分代码和渲染代码
//index.js
//一维数组转换为二维数组
arrTrans(num, arr) {
const iconsArr = []; // 声明数组
arr.forEach((item, index) => {
const page = Math.floor(index / num); // 计算该元素为第几个素组内
if (!iconsArr[page]) { // 判断是否存在
iconsArr[page] = [];
}
iconsArr[page].push(item);
});
return iconsArr;
}
//调用
a=arrTrans(50, arr)
//index.wxml
<view class="put" wx:for-items="{{a}}" wx:for-item="item" wx:key="rand" >
<view wx:for-items="{{item}}" wx:for-item="it" wx:key="random" >
<view class="random">{{it}}</view>
</view>
</view>