一、批量处理数据,减少调用次数
问题:在循环、事件回调中频繁单独调用 setData(如每次修改一条数据就调用一次)。
解决:先在内存中批量处理数据,最后一次性调用 setData。
优化前(错误示例):
// 循环中多次调用 setData,每次修改一条数据
for (let i = 0; i < 100; i++) {
this.setData({
[`items[${i}].status`]: true
});
}
优化后(正确示例):
// 1. 先在内存中批量修改
const newItems = [...this.data.items]; // 复制原数据
for (let i = 0; i < 100; i++) {
newItems[i].status = true; // 内存中修改
}
// 2. 一次性更新到视图
this.setData({
items: newItems
});
二、分离 “渲染数据” 和 “非渲染数据”
问题:将无需在页面渲染的数据(如临时计算结果、定时器 ID、后端返回的原始数据)也存入 data 中,导致无关数据触发 setData。
解决:非渲染数据直接存在页面实例(this)上,不放入 data。
优化前(错误示例):
// 把无需渲染的临时数据存入 data
this.setData({
微信小程序避免频繁使用setData方法

最低0.47元/天 解锁文章
967

被折叠的 条评论
为什么被折叠?



