收藏
回答

数组setData问题

Page({ 

data: { 

arrData: [ ] 

}

})

每次请求数据都是10条,如 [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]

方法1、直接覆盖原数据

var array = this.data.arrData;

[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ] .forEach( obj => {

   array.push(obj);

})

this.setData({

  arrData: array

})

疑问是,如果数据越来越多,那么刷新一次需要消耗的时间不是越来越多?


方法2、局部刷新10条

var length = this.data.arrData.length;

[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ] .forEach( ( obj, i ) => {

this.setData({

  [ `arrData${ i + length }` ]: obj

})

})

疑问是,每次刷新都要调n次setData,会不会有性能问题


上面2种刷新方法是否可行,还是说有更好的刷新方法,求解


最后一次编辑于  2019-04-08
回答关注问题邀请回答
收藏

2 个回答

  • 陈
    2019-04-08

    那你这样,写个集合存起来,比如userList,每次请求完后往userList添加数据,就可以只一次setData({userList:userList}),这样怎么样

    2019-04-08
    有用
    回复 2
    • sheng
      sheng
      2019-04-08

      这样和第一种没区别吧

      2019-04-08
      回复
    • 陈
      2019-04-08回复sheng

      额,是的,没注意,我以为你是每次都覆盖掉,这个看你数据量有多大吧,少的话第一种就可以了

      2019-04-08
      回复
  • 再见,电脑崽
    再见,电脑崽
    2019-04-08

    n=10 明显选第二种方式更好。

    2019-04-08
    有用
    回复
登录 后发表内容