vue父组件异步获取数据子组件不显示

这个问题遇到很多次,就是父组件中通过接口获取的数据,传给子组件,在子组件打印是空的

原因:接口获取数据需要时间,而在这个数据没有获取到之前,子组件已经渲染完成,自然就拿不到数据了

目前测试的有效的方法:

1.当这个数据获取到的时候,再进行渲染,

局限: 如果是弹框获取的话,就会产生一秒之后弹框才会出来的现象,影响界面效果

//子组件
<claimPerson 
	ref='person' 
	v-if='JSON.stringify(list) !== "{}"'
	:parentMessage='list' 
/>
//在子组件中 watch 监听,父组件获取到值,这个值就会变化,自然是可以监听到的
 watch:{
   
    parentMessage:{
   
      deep:true,
      handler:function(newVal,oldVal) {
   
        this.$nextTick(() => {
   
          this.parentMessage = newVal
        })
      }
    }
}
2.在子组件对传入的数据进行监听(有关组件注册等就不在写了)

弊端:
这种方法的局限在于只能在监听函数里面对传入的值进行操作,如果数据操作量大,可能也会导致多次调用

子组件
data:{
   
	newList:
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值