2021 / 3 / 25
setData修改变量
setData设置数据量是有限的,单次设置的数据大小不得超过1024kb,否则就会出现卡顿。
比如: 当触底加载的时候,每次数据都是老数据加上新获取的数据,然后一起通过setData提交并重新渲染页面。因为是所有数据重新渲染,当数据过大的时候就会出现卡顿情况。
解决方案
每次setData数据,只存放新的数据
eg:
data: {
nowPage: 0,
list: []
}
getListData() {
let newList = [...];
this.setData({
[`list[${nowPage}]`]: newList
})
nowPage++;
}
这样存放的数据结构就跟原本的不同,新的数据结构就不只是单一的数组类型,而是一个二维或多维数据。
eg: […],[…],[…],[…],[…],[…]]
所以在wxml中的列表结构需进行相应修改,
eg:
wx:for="{{ list }}" wx:key="index" // 这是每次数据循环
wx:for="{{ item }}" wx:for-item="itm" wx:for-index="idx" wx:key="idx" // 这是每次循环中小数据的获取