VUE3+Element-Plus项目 Component之间相关引用的问题

在项目中,经常会出现在ComponentA需要显示ComponentB页面,ComponentB也需要显示ComponentA页面,这样的情况在代码本地运行的时候一般没有什么问题也不会影响使用,但是一编译的时候就会出现如下error:

是由于组件之间循环引用报的错

可以采用以下方法来解决问题:

solution:采用异步加载component的方式,在画面初始化加载的时候不引用,因为使用的是VUE3,所以生命周期函数onCreated已经取消了,可以直接在setup中引入其他component。

下面是相关的案例代码:

<template>
  <!-- 打开 ComponentA -->
  <el-dialog
    v-model="payMoneyApprovalFLowDialogModel"
    width="80%"
    destroy-on-close
  >
    <component :is="currentComponentA"></component>
  </el-dialog>
  <!-- 打开 ComponentB -->
  <el-dialog v-model="applyApprovalDialogModel" width="90%" destroy-on-close>
    <component :is="currentComponentB"></component>
  </el-dialog>
</template>
<script lang="ts" setup>
  import { defineAsyncComponent, ref } from "vue";
  let currentComponentA = ref();
  let currentComponentB = ref();
  currentComponentA.value = defineAsyncComponent(
    () =>
      import(
        "@/views/ProjectLogistics/ProjectAdmin/ProjectBatchManagement/batchPerformView/payMoneyApprovalFlow.vue"
      )
  );
  currentComponentB.value = defineAsyncComponent(
    () =>
      import(
        "@/views/ProjectLogistics/ProjectAdmin/ProjectBatchManagement/batchPerformView/makeinvoice/invoiceApplyApprovalPage.vue"
      )
  );
</script>

有任何建议或者问题请评论指出,谢谢!

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值