要写支付宝小程序 之前写微信小程序就不少坑。。。 支付宝 可能也不少。
顺便记录下 支付宝与小程序 技术上的对比,与功能上的差异。
Page.prototype.$spliceData()
$spliceData同样用于将数据从逻辑层发送到视图层,但是相比于setData,在处理长列表的时候,其具有更高的性能。
$spliceData接受一个对象作为参数。
对象的键名key可以非常灵活,以数据路径的形式给出,如 array[2].message、a.b.c.d,并且不需要在this.data中预先定义。
对象的value为一个数组(格式:[start, deleteCount, ...items]),数组的第一个元素为操作的起始位置,第二个元素为删除的元素的个数,剩余的元素均为插入的数据。对应es5中数组的splice方法
<!-- page.axml -->
<view class="spliceData">
<view a:for="{{a.b}}" key="{{item}}" style="border:1px solid red">
{{item}}
</view>
</view>
// page.js
Page({
data: {
a: {
b: [1,2,3,4]
}
},
onLoad(){
this.$spliceData({ 'a.b': [1, 0, 5, 6] })
},
})
这个有点厉害 之前小程序这个setData 放数据过多 和 数据放置速度过于频繁 都会影响性能(安卓性能 ios 还是厉害 并不会卡) 这个可能用于解决 setData的问题 直接将值赋值在页面元素中 不通过data