【发布时间】:2017-12-06 19:05:49
【问题描述】:
我已使用 webpack 的代码拆分功能将我的应用程序拆分为多个块,以便在用户访问我的网页时不会下载整个应用程序包。
某些路由所需的块可能相当大,并且可能需要相当长的时间才能下载。这很好,除非用户在单击内部链接时不知道页面实际上正在加载,所以我需要以某种方式显示加载动画或其他东西。
我的路由器是这样配置的:
[
{
path: '/',
component: () => import(/* webpackChunkName: 'landing' */ './landing.vue'),
},
{
path: '/foo',
component: () => import(/* webpackChunkName: 'main' */ './foo.vue'),
},
{
path: '/bar',
component: () => import(/* webpackChunkName: 'main' */ './bar.vue'),
},
]
Vue.js 指南中的Advanced Async Components 展示了如何在解析组件时显示特定的“正在加载”组件——这正是我所需要的,但它也说:
请注意,当在 vue-router 中用作路由组件时,这些属性将被忽略,因为异步组件在路由导航发生之前被预先解析。
如何在 vue-router 中实现这一点?如果这是不可能的,那么延迟加载的组件对我来说几乎毫无用处,因为它会给用户带来糟糕的体验。
【问题讨论】:
标签: javascript webpack vue.js vue-router