小程序
小游戏
企业微信
微信支付
扫描小程序码分享
下拉加载新数据,如何把请求到的新数据追加到数组的前面
目前想到的办法是在数组使用splice,在前面追加后好后再一起setData,有没有更高效的办法处理
4 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
首次setData的数组用reverse颠倒过来
后面追加数据正常加到数组后面(this.setData({[`arr[this.data.arr.length]`]:item}))
通过WXSS display:flex;flex-direction:column-reverse; 在视图层颠倒回来。
每次追加的数据不止一条的话,就用二维数组,总之就是逻辑层颠倒数组,视图层再颠倒显示
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
感觉可行,先测试一下
用虚拟表格列表原理。 内存里存所有的数据,通过当前屏的起始位置的索引+一屏可以显示几条数据,获取显示数据, 把显示的数据setData给UI更新。上下拉滚动 动态计算起始位置,更新显示数据就可以。 一屏也就能放最多20条左右数据, 每次setdata 20条数据, 比你每次都把所有数据set进去要快很多。
let a =[1,2,3,4]let b = [23,2,456,456]let c = [...a,...b]console.log(c)
let a =[1,2,3,4]let b = [23,2,456,456]let d = b.concat(a)
这是先追加好了再setData,原先setData过的数据不想再次setData
没有其他方法
一般下拉是刷新整个页面
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
首次setData的数组用reverse颠倒过来
后面追加数据正常加到数组后面(this.setData({[`arr[this.data.arr.length]`]:item}))
通过WXSS display:flex;flex-direction:column-reverse; 在视图层颠倒回来。
每次追加的数据不止一条的话,就用二维数组,总之就是逻辑层颠倒数组,视图层再颠倒显示
感觉可行,先测试一下
用虚拟表格列表原理。 内存里存所有的数据,通过当前屏的起始位置的索引+一屏可以显示几条数据,获取显示数据, 把显示的数据setData给UI更新。上下拉滚动 动态计算起始位置,更新显示数据就可以。 一屏也就能放最多20条左右数据, 每次setdata 20条数据, 比你每次都把所有数据set进去要快很多。
这是先追加好了再setData,原先setData过的数据不想再次setData
没有其他方法
一般下拉是刷新整个页面