You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

循环内动态组件绑定触发无限循环问题及解决方案

循环内异步动态组件引发无限import循环的问题

使用以下代码在循环中动态加载组件时,站点的import操作陷入无限循环:

<template>
  <div>
    <div v-for="(user, userIndex) in users" :key="userIndex">
      <component 
        :is="() => import(`./${user.typ}CreateFields.vue`)" 
        v-model="users[userIndex]"
      />
    </div>
  </div>
</template>

请问是否无法在循环中使用动态组件?


解决方案

通过创建一个中间组件接管异步加载逻辑,循环即可正常工作:

<template>
  <component :is="myComponent" v-model="val" />
</template>

<script lang="ts">
import { Component, Vue, Prop } from 'vue-property-decorator';

@Component
export default class BeanstandetePositionCreateFields extends Vue {
    @Prop({ required: true })
    public value!: MyObject;

    public get val() {
        return this.value;
    }

    public set val(value: BeanstandetePositionCreate) {
        this.$emit('input', value);
    }

    public get myComponent() {
        const typ = this.val.typ;
        return () => import(`./${typ}CreateFields.vue`);
    }
}
</script>

内容的提问来源于stack exchange,提问作者SNO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 10:42:20