vue3之异步组件defineAsyncComponent 使用无效?

  • vue3之异步组件defineAsyncComponent 使用无效?已关闭评论
  • 111 次浏览
  • A+
所属分类:Web前端
摘要

原文地址:我的稀土掘金介绍:defineAsyncComponent 用于拆分应用为更小的块,并仅在需要时再从服务器加载相关组件

原文地址:我的稀土掘金

介绍:defineAsyncComponent 用于拆分应用为更小的块,并仅在需要时再从服务器加载相关组件

官网案例

<script setup> import { defineAsyncComponent } from 'vue'  const AdminPage = defineAsyncComponent(() =>   import('./components/AdminPageComponent.vue') ) </script>  <template>   <AdminPage /> </template>  

结果展示

vue3之异步组件defineAsyncComponent 使用无效?

大致意思:无法读取未定义的属性

打印一下这个异步组件和普通组件的值

vue3之异步组件defineAsyncComponent 使用无效?
输出的值区别不大

再看官网

import { defineAsyncComponent } from 'vue'  const AsyncComp = defineAsyncComponent(() => {   return new Promise((resolve, reject) => {     // ...从服务器获取组件     resolve(/* 获取到的组件 */)   }) }) // ... 像使用其他一般组件一样使用 `AsyncComp`  

这种写法是没有问题的,但是有return 导出该数据

最后改造

<script setup> import { defineAsyncComponent } from 'vue'  const AdminPage = defineAsyncComponent(() =>   return import('./components/AdminPageComponent.vue') ) </script>  <template>   <AdminPage /> </template>  

结果

官网上异步组件,存在代码疏漏,import 前需要return才会生效