vue2_data过深

当data深度过深,且夹带异步请求时

1,首先会遇见数据加载顺序不正确

 解决:采用promisr 配合异步请求,待请求完成之后将数据push到已定变量中接收,利用链式调用特性(以下函数自行调试)

async fun() {
        // 尽量使用if循环
      for (let i = 0; i < this.Data.length; i++) {
        try {
          const params = {
            id: id,
          };
          const response = await getAxiosData(params);
          this.saveData.push(response.data.data.doc);
        } catch (error) {
          console.error("Error:", error);
        }
      }
    }

缺点,加载速度相对较慢,视觉上会有卡顿感。(也期待大神指导)

2,html渲染报错,常见错误如图

报错类型1

报错类型2

根据这张图,问题就显而易见了

此时数据可以渲染,但控制台报错

问题解析:1,排查data深度是否过深,2,排查是否是在渲染之前能够获取到数据

解决方案:

1,使用v-if或v-for在html中层层判断并加载数据(你的可能是数组,或者数组对象又或者。。。)

        不推荐:原因==》会改变html结构

2,将判断条件整理为函数,返回相应的值,在页面中使用

        推荐:好使!

fun(index, type) {
      if (this.Array.length) {
        for (let k = 0; k < this.Array.length; k++) {
          if (k == index) {
            for (var i = 0; i < this.Array[index].length; i++) {
              if (i == 0) {
                return this.Array[index][i][type];//对象可以用[]取值!!!!!!!
              }
            }
          }
        }
      }
    },

谨此记录

——感谢我亲爱的莫!好兄弟,看到这篇文章截图v我!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值