收藏
回答

向data中的数组追加/移除元素时能否只传递差量而不传递整个数组?

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 Bug 微信安卓客户端 所有 所有

根据官方最佳实践https://developers.weixin.qq.com/miniprogram/dev/framework/performance/tips.html

由setData的底层实现可知,我们的数据传输实际是一次 evaluateJavascript 脚本过程,当数据量过大时会增加脚本的编译执行时间,占用 WebView JS 线程

那么在向data中的数组追加/移除元素时能否只传递差量而不传递整个数组?

this.setData({
  array: this.data.array.concat(anotherArray) // 目前只能整体设置更新后的数组?
})


支付宝小程序为此提供了Page.prototype.$spliceData(data: Object, callback: Function)接口

https://opendocs.alipay.com/mini/framework/page-detail#Page.prototype.%24spliceData(data%3A%20Object%2C%20callback%3A%20Function)

回答关注问题邀请回答
收藏

1 个回答

  • 拾忆
    拾忆
    2021-01-17

    可以试试这样:

    data: {
        array: {
          test1: {},
          test2: {}
        }
      }
    
    
    let test2 = "array.test2"
        this.setData({
          [test2]: {
            a: 1,
            b: 2
          }
        })
    
    2021-01-17
    有用 1
    回复
登录 后发表内容
问题标签