最近vue项目路由改为了懒加载方式,刚开始并无什么问题,清空项目文件,从新下载配置运行后,就发现控制台报如下错误: [vue-router] Failed to resolve async component default: Error:Loading chunk 10 failed. 刷新页面后,就不会再报错,思来想去应该使用路由懒加载后,组件加载异常致使的,可是到底是什么缘由,暂时不知,有知道的朋友能够留言。 解决方案: Vue Router中有个错误处理函数onError,用于处理路由异常状况,请看说明: 渲染一个路由的过程当中,须要尝试解析一个异步组件时发生错误。 这种状况想来应该是符合我们的错误状况,由于刷新页面后,就不会报错,因此假设错误预想成立,那么下一步,咱们在onError方法中,从新加载咱们的目标页面,应该就能够解决问题。
请看方案: /* 路由异常错误处理,尝试解析一个异步组件时发生错误,从新渲染目标页面 */vue
vue.config.js中配置以下: vue-router
router.onError((error) => { const pattern = /Loading chunk (\d)+ failed/g; const isChunkLoadFailed = error.message.match(pattern); const targetPath = router.history.pending.fullPath; if (isChunkLoadFailed) { router.replace(targetPath); } })markdown