父组件内部接口调用 或 父组件加载 完后再加载子组件;控制子组件的加载时机

本文介绍了在Vue中如何解决子组件异步获取数据的问题。通过在子组件上使用v-if指令,配合父组件的接口调用来确保数据加载完成后再加载子组件。文章提供了一个具体的解决方案,即在父组件的mounted钩子中调用接口,接口成功后设置v-if的控制变量,从而实现父组件数据准备完毕后再加载子组件。
摘要由CSDN通过智能技术生成

目录

一、问题

二、解决方法

1.v-if

三、总结


一、问题

1.场景一:一个父组件有多个子组件,且子组件都需要取同一个配置项,为了复用代码和减少接口调用次数,直接在 父组件中调用一次接口取配置项后传入子组件,在子组件中直接使用即可

但是 发现在子组件中取值时,取到的值 是有时候是空的,有时候又是正确的。------间接的异步问题:子组件取值时,父组件的接口没有可能没有调用完。————所以需要先调用完父组件内部接口再 加载子组件。

二、解决方法

1.v-if

1)子组件加上 v-if=" showSon"

2)父组件内部接口调用完成后加载子组件:父组件定义变量 showSon,接口调用前 showSon赋值 false;接口调用完成后赋值 true;

3)父组件加载完后再加载子组件:父组件定义变量showSon赋值 false, 在mounted或onMounted(组合式API)中赋值为 true

4)伪代码如下


<template>
    <div>
        <Son v-if="showSon"></Son>
    </div>
</template>
<script>
    import api from '@/api/nursingAPI.js'
    import Son from './Son.vue'
    export default {
        data(){
            return{
                showSon:false,
            }
        },
        mounted() {
            api()
            .then((result)=>{
                // 接口调用后处理可以写在这里
                // 接口调用后再加载子组件 son
                showSon=true;
            })
        },
        components:{
            Son
        }
    }
</script>

2.待解锁

三、总结

父组件加载完后再加载子组件的方法:

1.使用v-if="isShow"控制 子组件的加载,在不需要加载子组件时,将isShow设为true;在需要加载子组件时将 isShow设为false。

/*

希望对你有帮助!

如有错误,欢迎指正,非常感谢!

*/

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值