情景
今天在开发微信小程序的时候发现我通过for 循环生成可选中列表,选中时发现略微卡顿,我通过网络收集信息发现可能是频繁setData的原因,因为为了判断为用户点击了来列表举矩阵中的某个,我设置了一个1:1 的矩阵,每次点击都会对列表中的固定的位置取反,并且重新赋值给data里面的坐标数组。
解决方案
之前没有认真的巩固过基础,导致自己不认识如何对数组或则对象中的某要一个值做出改变,后来寻得方法
const coord = this.data.coord;
const index = e.currentTarget.dataset.index;
const obj = 'coord['+ index[0] + '][' + index[1] + ']';
let bool = !coord[index[0]][index[1]];
// 只修改部分data值,减少程序卡顿
this.setData({
[obj]:bool
});
以上方法可以解决大部分setData卡顿问题
评论区