Vue3:异步加载await <suspense>
在Vue 3中,可以使用<Suspense>
组件来处理异步加载的组件。当你需要等待异步数据或者异步组件加载完成时,可以使用<Suspense>
组件配合async setup
函数来实现。
以下是一个简单的例子,展示如何使用<Suspense>
和async setup
来异步加载组件:
<template>
<Suspense>
<template #default>
<AsyncComp />
</template>
<template #fallback>
<!-- 在组件加载时显示的内容 -->
<div>Loading...</div>
</template>
</Suspense>
</template>
<script>
import { defineAsyncComponent } from 'vue';
export default {
components: {
AsyncComp: defineAsyncComponent(() =>
import('./AsyncComp.vue').then((c) => {
// 你也可以在这里处理错误
return c;
}).catch((error) => {
console.error('Error loading component:', error);
// 返回一个组件,用于在加载失败时显示
return {
template: '<div>Error loading component</div>',
};
})
)
}
};
</script>
在这个例子中,AsyncComp.vue
是一个异步加载的组件。defineAsyncComponent
用于创建一个异步加载的组件工厂。Suspense
组件提供了一个fallback
插槽,在AsyncComp
组件还没加载完成时显示。如果异步组件加载失败,你可以在catch
中处理错误并返回一个错误组件。
评论已关闭