html52.com
我爱小程序-开发者交流社区

向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)

网友回复

拾忆:

可以试试这样:

data: {
    array: {
      test1: {},
      test2: {}
    }
  }


let test2 = "array.test2"
    this.setData({
      [test2]: {
        a: 1,
        b: 2
      }
    })

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签云端发卡