vue---父子组件传输异步数据

本文探讨了在Vue中父子组件生命周期钩子的顺序,特别是在处理异步数据时的问题。当父组件的异步数据未返回时,子组件可能已渲染完成。解决这个问题的方法包括使用`v-if`延迟子组件渲染,或者在子组件中通过`watch`监听并响应数据变化。这两种策略能确保子组件在接收到完整数据后进行更新。
摘要由CSDN通过智能技术生成

对于父子组件的生命周期钩子的顺序是:
父组件created – 子组件mounted

所以我们在父子组件传输数据的时候,常常在子组件的mounted去调用这个数据。

父子之间传输的数据,一般有两类,
一个是在父组件中定义的变量,另一个就是父组件接口的数据,也就是异步数据。
父组件定义的变量是没什么好说的,满足上面说的钩子顺序。

但是当传输的是异步数据时,就不按照上面的顺序了。

当父组件去获取异步数据的时候,不会停止子组件的渲染。
所以就造成一种情况,就是子组件已经渲染完了,但是数据还没传到子组件中。

解决方法:

方法1,在父组件中,子组件的标签里,加上v-if判断,等父组件的异步数据到了之后,再去渲染子组件。

// 父组件中
<子组件 v-if=‘数据!=null :数据=‘数据’>

方法2,在子组件中,用watch来监听父组件传来的数据,当异步数据传到子组件的时候,再去更新子组件。

// 子组件中
watch:{
数据:function(new,old){
this.updata(new)
}
}methods:{
updata(val){
consolo.log(val)  // 这就是传过来的值
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值