收藏
评论

优化子节点数大于 60 个,解决方案分享

优化-我的小程序有一项是一次渲染一个数组的很多数据,

这是我的项目,一次有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>



扫码体验

赞 0
收藏
登录 后发表内容