搜索

首页  >  问答  >  正文

学习如何在Vue 3中实现动态组件导入

<p>根据这篇文章,我想要将组件动态地导入到我的Vue 3应用程序中。视图的代码如下:</p> <pre class="brush:php;toolbar:false;"><template> <div class="page"> <latest-box v-if="showLatestBox" /> </div> </template> <script> // @ 是 /src 的别名 // 这种方式有效 //import LatestBox from '@/components/LatestBox.vue' export default { name: 'Page 1', data() { return { showLatestBox: true, } }, components: { LatestBox: () => import('@/components/LatestBox.vue') // 这种方式无效 } } </script></pre> <p>代码没有报错,但是我在页面上看不到组件。如果我使用第一种导入方式,它可以工作。我漏掉了什么吗?</p>
P粉253800312P粉253800312464 天前655

全部回复(1)我来回复

  • P粉970736384

    P粉9707363842023-08-25 09:09:03

    在Vue 3中,你需要使用defineAsyncComponent来懒加载组件

    import { defineAsyncComponent } from 'vue'
    ...
        components: {
            LatestBox: defineAsyncComponent(() => import('@/components/LatestBox.vue'))
        }

    https://v3-migration.vuejs.org/breaking-changes/async-components.html#overview

    回复
    0
  • 取消回复