Vue中Router异步组件和添加处理加载状态

  • 工厂函数中返回一个 Promise,所以把 webpack 2 和 ES2015 语法加在一起,我们可以这样使用动态导入:
Vue.component(
  'async-webpack-example',
  // 这个动态导入会返回一个 `Promise` 对象。
  () => import('./my-async-component')
)
// 或者局部注册组件中使用键值对方式
new Vue({
  // ...
  components: {
    'my-component': () => import('./my-async-component')
  }
})
  • 异步组件工厂函数可以返回一个如下格式的对象:
onst AsyncComponent = () => ({
  // 需要加载的组件 (应该是一个 `Promise` 对象)
  component: import('./MyComponent.vue'),
  // 异步组件加载时使用的组件
  loading: LoadingComponent,
  // 加载失败时使用的组件
  error: ErrorComponent,
  // 展示加载时组件的延时时间。默认值是 200 (毫秒)
  delay: 200,
  // 如果提供了超时时间且组件加载也超时了,
  // 则使用加载失败时使用的组件。默认值是:`Infinity`
  timeout: 3000
})
posted @ 2022-04-20 18:04  lutwelve  阅读(482)  评论(0)    收藏  举报