Vue 实现数据的批量加载

之前在写vue的项目,因为使用的websocket获取设备数据,后台一次性返回的数据量太大并且获取到数据后需要获取其详细数据需要调用接口获取(相当于获取详情),一次性获取数据过多会导致页面卡死,所以最后使用了批量加载数据,在此记录下....

我们将websocket接收到的所有数据赋值给deviceList,然后将该数据分为多个批次,然后分批请求(这边我是按照每10条数据为一组,分批请求的)

data() {
  deviceList:[],
  cardDeviceList:[]
},
methods:{
     splitData (list) {
      var res = []
      for (var i = 0, len = list.length; i < len; i += 10) {
        res.push(list.slice(i, i + 10))
      }
      return res
    },
    getList () {
      // 接收到的数据
      this.deviceList = [
        {
          id: 1,
          name: '测试机'
        },
        {
          id: 2,
          name: '测试机1'
        },
        {
          id: 3,
          name: '测试机2'
        },
        {
          id: 4,
          name: '测试机3'
        },......
      ]
      const data = this.splitData(deviceList)
      this.getIustatusList(this.cardDeviceList, 0, data)
    },
    getIustatusList (cardDeviceList, num, data) {
      // cardDeviceList是我这边接收到的设备列表与获取到的数据进行匹配赋值的
      let requestList = []
      data[num].forEach(el => {
        requestList.push(你这边请求的接口)
      })
      Promise.all(requestList).then(res => {
        num++
        if (num < data.length) {
          this.getIustatusList(cardDeviceList, num, data)
        }
      })
    },
  
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实现Vue 3和TypeScript中表单批量修改选中的多行数据,你可以按照以下步骤进行操作: 1. 首先,在Vue组件中创建一个表格,用于展示多行数据,并给每一行数据添加一个复选框用于选择。 2. 在data选项中定义一个数组,用于存储选中的多行数据。 3. 在复选框的change事件处理方法中,判断复选框的选中状态,如果选中则将该行数据添加到选中的多行数据数组中,如果取消选中则从数组中移除。 4. 创建一个方法,用于处理表单提交事件。在该方法中,获取到选中的多行数据,并进行批量修改操作。 5. 在模板中使用v-model指令将复选框的选中状态绑定到组件的data属性上。 6. 创建一个按钮或其他触发事件的元素,绑定点击事件,调用上述处理表单提交事件的方法。 下面是一个简单的示例代码,演示了如何使用Vue 3和TypeScript实现表单批量修改选中的多行数据: ```vue <template> <div> <table> <thead> <tr> <th></th> <th>名称</th> <th>数值</th> </tr> </thead> <tbody> <tr v-for="(row, index) in rows" :key="index"> <td> <input type="checkbox" v-model="selectedRows" :value="row" /> </td> <td>{{ row.name }}</td> <td>{{ row.value }}</td> </tr> </tbody> </table> <form @submit="handleSubmit"> <input type="text" v-model="batchValue" /> <button type="submit">提交</button> </form> </div> </template> <script lang="ts"> import { defineComponent, ref } from 'vue'; interface Row { name: string; value: string; } export default defineComponent({ data() { return { rows: [ { name: '行1', value: '值1' }, { name: '行2', value: '值2' }, { name: '行3', value: '值3' }, ] as Row[], selectedRows: [] as Row[], batchValue: '', }; }, methods: { handleSubmit(event: Event) { event.preventDefault(); // 对选中的多行数据进行批量修改操作 this.selectedRows.forEach((row) => { // 在这里进行修改操作 row.value = this.batchValue; }); }, }, }); </script> ``` 在上述示例中,我们创建了一个表格来展示多行数据,并给每一行数据添加了一个复选框。通过v-model指令将复选框的选中状态绑定到组件的data属性selectedRows上,从而实现了选中多行数据的功能。在表单提交时,我们遍历选中的多行数据数组,对每一行数据进行批量修改操作。 你可以根据实际需求修改和扩展这个示例代码,以适应你的具体场景。希望对你有所帮助!如果你有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值