vue3 解决各场景 loading过度 ,避免白屏尴尬!
warning:
这篇文章距离上次修改已过188天,其中的内容可能已经有所变动。
在Vue 3中,解决白屏问题通常涉及到在应用初始化时显示一个加载状态。可以通过以下几种方式实现:
- 使用Vue的
<Suspense>
组件配合异步组件来实现懒加载,从而避免在页面完全渲染之前显示空白。 - 使用全局状态管理(如Vuex或Pinia)来跟踪加载状态,并在加载数据时显示一个加载提示。
- 使用页面级的加载指示,比如在路由切换时使用progressbar或spinner。
以下是一个使用Vue 3 <Suspense>
和异步导入实现加载提示的简单示例:
<template>
<Suspense>
<template #default>
<AsyncComponent />
</template>
<template #fallback>
<div>Loading...</div>
</template>
</Suspense>
</template>
<script setup>
const AsyncComponent = defineAsyncComponent({
loader: () => import('./MyComponent.vue'),
loadingComponent: LoadingComponent,
delay: 200,
timeout: 3000
});
</script>
在这个例子中,AsyncComponent
是一个异步加载的组件。当它正在加载时,<Suspense>
的后备#fallback插槽会显示一个加载中的提示。loadingComponent
是一个可选的组件,可以自定义加载中的样式。delay
是在显示加载组件前等待的毫秒数,而 timeout
是超时时间,超过这个时间如果组件还没加载完成,则显示加载组件。
确保你的网络环境良好,否则超时时间设置可以帮助避免因网络问题导致的长时间加载等待。
评论已关闭