setData 理解
- setData 函数用于将数据从逻辑层发送到视图层(异步)
- this.data 的值(同步)
- 直接修改 this.data 而不调用 this.setData 是无法改变页面的状态的,还会造成数据不一致。
- 仅支持设置可 JSON 化的数据。
- 单次设置的数据不能超过1024kB,请尽量避免一次设置过多的数据。请不要把 data 中任何一项的 value 设为 undefined ,否则这一项将不被设置并可能遗留一些潜在问题。
数据量过大 如何更新
业务场景: 页面的数据量非常大 一个数组 交互时只改变 其中一个值 如果我们每次交互 都要重新 setdata 那么页面会非常卡顿
如何解决: 我们改那个值 就更行那个值
- 数据结构
data: {
user_info:{
name: 'li',
age: 10
},
cars:['nio', 'bmw', 'wolks']
},
- 更改一 、[‘字符串’] es6语法 动态改变 键名
this.setData({
['user_info.age']: 20,
['cars[0]']: 'tesla'
})
- 更改 二、 常规操作 数据量大时 不推荐
var temp = this.data.cars
temp[0] = 'volvo'
this.setData({
cars: temp
})
- 更改三 、 本质上和第一种 一样 这个是静态 第一种是动态的
var temp = this.data.cars
temp[0] = 'volvo'
this.setData({
cars: temp
})