defineAsyncComponent — async components.
Basic:
1<script setup>2import { defineAsyncComponent } from "vue"34const HeavyComponent = defineAsyncComponent(5 () => import("./HeavyComponent.vue")6)7</script>89<template>10 <HeavyComponent />11</template>
With loading/error:
1const AsyncComp = defineAsyncComponent({2 loader: () => import("./Component.vue"),3 loadingComponent: LoadingSpinner,4 errorComponent: ErrorDisplay,5 delay: 200,6 timeout: 30007})
Route-based:
1{2 path: "/dashboard",3 component: () => import("./Dashboard.vue")4}
Key: Lazy load for code splitting.