<Suspense> is a built-in component that coordinates async dependencies in its component tree — it shows a fallback (loading UI) until all nested async operations resolve, then displays the real content. It removes manual isLoading boilerplate.
The two slots
<template>
<Suspense>
<template #default>
<UserDashboard /> <!-- a component with async setup -->
</template>
<template #fallback>
<LoadingSpinner /> <!-- shown while #default is resolving -->
</template>
</Suspense>
</template>
