在長列表下,微信小程序setData的性能比較堪憂
通常情況下,setData是進行了全部的數據重新渲染
結合網上各個大佬的解決方案,以下方案個人認爲簡單粗暴
分頁請求,對服務器壓力相對較小。
分頁增量渲染顯示,對setData的壓力也較小。
js回調裏,將頁面的page作爲數組的下標來實現增量渲染,而不是將數據全部重新渲染一次。
that.setData({
["List[" + page + "]"] :resList
})
wxml文件裏做一個雙重循環,達到增量渲染的效果,實測數萬級列表也不會卡頓。IOS和Android的wechat版本均爲7.06測試過。
<block wx:for="{{List}}" wx:for-item="list-item">
<block wx:for="{{list-item}}" wx:for-item="list">
<view class="tab-content">
{{list.content}}
</view>
</block>
</block>