关于v-for的坑

// 为了方便直接用大数组 小数组汉字代表 变量名了
  大数组:[
    {
      id:1,
      name:'小明',
      小数组:[
        {
          age:18,
          sex:'男'
        }
      ]
    },
    {
      id:2,
      name:'小刚',
      小数组:[
        {
          age:17,
          sex:'男'
        }
      ]
    },
    {
      id:3,
      name:'小红',
      小数组:[
        {
          age:16,
          sex:'女'
        }
      ]
    },
  ]
  <!-- 这里大数组的每一项 里都有一个小数组 -->
  <!-- 渲染页面:v-for大数组,同时也要 v-for 小数组中的数据 -->

这里踩的坑:
我先发请求拿到了 大数组 中的数据(这个数据不包括 小数组),然后直接保存到了组件自身。
这时,页面已经呈现了遍历 大数组 渲染后的效果。但是完整页面上还要遍历这个 大数组 中每一项的 小数组。
然后我又发请求拿到了 大数组 中的 小数组,接着将小数组 保存到 大数组的每一项里。然后.......这个小数组中的数据就一直不渲染到页面
但是 组件身上的数据是没有错误的,该拿到的都拿到了,mounted中请求完毕之后也都可以 得到完整的数据。
找啊找啊找bug.....一下午......
我用v-if控制了一下这个 小数组 的DOM元素 的显示和隐藏,默认让他先隐藏,然后等到全部数据拿到之后我再让他显示,
结果tmd好了 小数组 的数据也渲染出来了。
但是这样写不太好,因为涉及到两个请求,我让这两个请求都请求成功后,再把所有数据保存到自身,结果页面就没有任何毛病了

总结:当遇到v-for嵌套时,一定一定要把所有完整的数据都拿到后再让页面渲染数据

posted @ 2022-08-24 20:37  ycccc丶  阅读(20)  评论(0编辑  收藏  举报
//背景线条