vue路由懒加载结合suspense可避免白屏闪跳,需用defineasynccomponent或动态import定义异步路由组件,并在app.vue等布局中用suspense包裹router-view,其fallback统一展示加载态,且自动聚合嵌套路由及异步子组件的加载状态。

Vue 路由懒加载结合 Suspense,核心是让路由切换时的组件加载过程不再“白屏”或“闪跳”,而是有可控的加载状态反馈。关键不在路由本身配置,而在于如何把异步路由组件放进 Suspense 的作用域中,并确保它能正确捕获加载时机。
路由定义必须用 defineAsyncComponent 或动态 import
不能直接静态导入组件,否则 Suspense 无法感知异步行为:
- ✅ 正确写法(触发 Suspense):
const Home = () => import('@/views/Home.vue') 或
defineAsyncComponent(() => import('@/views/Home.vue')) - ❌ 错误写法(绕过 Suspense):
import Home from '@/views/Home.vue' —— 组件会同步加载,Suspense完全不生效
在路由出口处包裹 Suspense
不是在 router-view 外层简单包一层就完事,要确保 Suspense 的 #default 插槽里放的是真正的异步组件实例。推荐在布局组件或页面根模板中使用:
vue-composition-api-best-practices
Vue 3 组合式 API 与
热门下载
相关下载
精品课程
相关推荐
/
热门推荐
/
最新课程
最新文章
