vue中异步请求到的数据父向子传值如何动态传递

vue中异步请求到的数据父向子传值如何动态传递

由于axios请求是异步的而组件之间传递数据是同步的这个时候就会出现一些问题
当数据请求过来的时候子组件已经渲染这个时候传递过去的数据是空的。

首先要知道父子组件的渲染顺序

加载渲染过程

父beforeCreate->父created->父beforeMount->子beforeCreate->子created->子beforeMount->子mounted->父mounted

子组件更新过程 父beforeUpdate->子beforeUpdate->子updated->父updated

父组件更新过程 父beforeUpdate->父updated

销毁过程 父beforeDestroy->子beforeDestroy->子destroyed->父destroyed

了解完这个就直接上干货

方法1:在调用子组件的时候使用v-if指令来判断数据的状态 如果有数据了 那就渲染 (不推荐) 原因 :
因为这样如果数据量大的话会渲染非常的慢,刷新页面会出现闪动的效果

方法2:侦听器watch 在子组件添加侦听器 侦听传递过来的数据 ,如果有数据了那就重新赋值 (不推荐) 原因 :
原因很简单因为每次数据发生变化他都会被调用一次

方法3:给组件添加ref属性 然后在子组件中定义一个函数 把请求到的数据通过
this.$refs.[refAttribute].methodName(params) 将数据传递给子组件 (推荐)

方法4:直接将数据存放在vuex中 让子组件通过vuex去取数据 (推荐)

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3组件向子组件传值可以使用props属性。在组件通过v-bind指令将数据绑定到子组件的props属性上,子组件就可以通过props属性接收组件传递数据。具体实现步骤如下: 1. 在子组件定义props属性,用于接收组件传递数据。 2. 在组件使用v-bind指令将数据绑定到子组件的props属性上。 3. 在子组件使用props属性获取组件传递数据。 例如,组件向子组件传递一个字符串类型的数据,可以按照以下步骤实现: 1. 在子组件定义props属性,用于接收组件传递数据。 ``` <script> import { defineComponent } from 'vue'; export default defineComponent({ name: 'ChildComponent', props: { message: { type: String, required: true } } }); </script> ``` 2. 在组件使用v-bind指令将数据绑定到子组件的props属性上。 ``` <template> <div> <ChildComponent :message="parentMessage" /> </div> </template> <script> import { defineComponent } from 'vue'; import ChildComponent from './ChildComponent.vue'; export default defineComponent({ name: 'ParentComponent', components: { ChildComponent }, data() { return { parentMessage: 'Hello, child!' }; } }); </script> ``` 3. 在子组件使用props属性获取组件传递数据。 ``` <template> <div> {{ message }} </div> </template> <script> import { defineComponent } from 'vue'; export default defineComponent({ name: 'ChildComponent', props: { message: { type: String, required: true } } }); </script> ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值