vue父组件传递props异步数据到子组件遇到的问题

状况1:
 父组件parent.vue

// asyncData为异步获取的数据,想传递给子组件使用

 

子组件child.vue


 

子组件的html中的{{childData}}的值会随着父组件的值而改变

vue父组件传递props异步数据到子组件遇到的问题_第1张图片
在这里插入图片描述

但是 created里面的却不会发生改变(生命周期问题)
vue父组件传递props异步数据到子组件遇到的问题_第2张图片
在这里插入图片描述

案例二
  parent.vue


 

子组件 children


 

created里面的却不会发生改变, 子组件的html中的{{{childObject.items[0]}}的值虽然会随着父组件的值而改变,但是过程中会报错。

是因为:首先传过来的是空,然后再异步刷新值,也就是开始时候childObject.items[0]等同于''.item[0]这样的操作,
所以就会报下面的错:


vue父组件传递props异步数据到子组件遇到的问题_第3张图片
在这里插入图片描述

解决办法:
1、使用v-if可以解决报错问题和created为空问题
父组件parent


 

子页面 children


 

vue父组件传递props异步数据到子组件遇到的问题_第4张图片
在这里插入图片描述

2、子组件使用watch来监听父组件改变的prop,使用methods来代替created

子组件 children


 

vue父组件传递props异步数据到子组件遇到的问题_第5张图片
在这里插入图片描述

3、子组件watch computed data 相结合(麻烦)

子组件children


 

vue父组件传递props异步数据到子组件遇到的问题_第6张图片
在这里插入图片描述

4、使用prop default来解决{{childObject.items[0]}}

父组件:


 

子组件:


 

vue父组件传递props异步数据到子组件遇到的问题_第7张图片
在这里插入图片描述

你可能感兴趣的:(vue父组件传递props异步数据到子组件遇到的问题)