当我像这样填充createRouter()
中的component
字段时:
{
path: '/article/post',
name: 'article-post',
component: defineAsyncComponent({
loader: () => import('@/views/article-post/index.vue'),
loadingComponent: () => import('@/views/article-post/skeleton.vue'),
}),
},
看起来它不工作。什么我想让它显示一个加载页面时,实际页面正在加载。
我该怎么做呢?
3条答案
按热度按时间g2ieeal71#
loadingComponent
值必须是组件定义,并且其本身不能是异步组件:还要注意的是,加载组件(
Skeleton
)只显示一次,也就是说,如果组件定义还没有在缓存中的话。这个Codesandbox在loader()
中添加了一个人为的延迟来演示。du7egjpx2#
可以按如下方式异步加载组件:
svdrlsy43#
Note
不要对路由使用异步组件。异步组件仍然可以在路由组件内部使用,但路由组件本身只是动态导入。