Vue 的异步组件和 Suspense 怎么用?
异步组件:用 defineAsyncComponent 懒加载,常配合 loading/error 状态:
import { defineAsyncComponent } from 'vue'
const AsyncComp = defineAsyncComponent({
loader: () => import('./Heavy.vue'),
loadingComponent: Loading,
errorComponent: ErrorComp,
delay: 200, timeout: 3000
})Suspense:等待其下「异步 setup / async 组件」就绪后再渲染,提供 #fallback 插槽:
<Suspense>
<template #default><AsyncUser /></template>
<template #fallback><Spinner /></template>
</Suspense>异步组件的
loader返回 Promise(通常是动态import);Suspense 负责统一"等待多个异步依赖"。