vue异步路由添加loading和error组件

532 阅读1分钟
/** * 处理路由页面切换时,异步组件加载过渡的处理函数 * @param  {Object} AsyncView 需要加载的组件,如 import('@/components/home/Home.vue') * @return {Object} 返回一个promise对象 */function lazyLoadView (AsyncView) {    const AsyncHandler = () => ({      // 需要加载的组件 (应该是一个 `Promise` 对象)      component: AsyncView,      // 异步组件加载时使用的组件      loading: LoadingComponent,      // 加载失败时使用的组件      error: ErrorComponent,      // 展示加载时组件的延时时间。默认值是 200 (毫秒)      delay: 200,      // 如果提供了超时时间且组件加载也超时了,      // 则使用加载失败时使用的组件。默认值是:`Infinity`      timeout: 10000    });    return Promise.resolve({        render (h) {            return h(AsyncHandler);        }    });}