不懂就问? 关于 setData性能问题
发布于 5 年前 作者 songjuan 12926 次浏览 来自 官方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 回复

这样最快

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

全部替换

回到顶部