不懂就问? 关于 setData性能问题

发布于 6 年前作者 songjuan13059 次浏览最后编辑 6 年前来自 issues

做一个购物车选择功能 当全选的时候 是 把整个购物车数据都重新setData更快 还是 逐条setData选中状态更快?

var shopCartList = [{
      id0,
      name: "123",
      productList: [{
          id0,
          name: "123",
          isChecked: false,
        },
        {
          id0,
          name: "123",
          isChecked: false,
        },
        {
          id0,
          name: "123",
          isChecked: false,
        },
        {
          id0,
          name: "123",
          isChecked: false,
        }
      ]
    }, {
      id0,
      name: "123",
      productList: [{
          id0,
          name: "123",
          isChecked: false,
        },
        {
          id0,
          name: "123",
          isChecked: false,
        },
        {
          id0,
          name: "123",
          isChecked: false,
        },
        {
          id0,
          name: "123",
          isChecked: false,
        }
      ]
    }]
    //全部替换
    shopCartList.forEach((value, index) => {
      value.productList.forEach((val, ind) => {
        val.isChecked = true
      })
    })
    this.setData({
      shopCartList: shopCartList
    })
    //逐条替换
    shopCartList.forEach((value, index) => {
      value.productList.forEach((val, ind) => {
        this.setData({
          ["shopCartList[" + index + "].productList["+ ind +"].isChecked"]: true
        })
      })
    })
2 回复
guiying34
guiying341 楼5 年前

这样最快

var data = {}
shopCartList.forEach((value, index) => {
  value.productList.forEach((val, ind) => {
    data["shopCartList[" + index + "].productList["+ ind +"].isChecked"] = true
  })
})
this.setData(data)
dzheng
dzheng2 楼5 年前

全部替换