vue的router.onError路由出错的问题

造成路由出错的情况:

1. 跳转路由页面加载该页面js文件404时,触发router.onError

在这里插入图片描述

解决:
/**
 * @description 监听路由错误,正则匹配对应的错误消息后,自动刷新界面
 * 解决前端发版出现-跳转路由页面加载该页面js文件404时,触发router.onError的场景
 */
router.onError((error) => {
  const pattern = /Loading chunk chunk-(.*)+ failed/g
  const isChunkLoadFailed = error.message.match(pattern)
  if (isChunkLoadFailed) {
    Message({
      message: '系统已升级,正在刷新本地存储,请稍候...',
      type: 'warning',
      duration: 1500,
      offset: 60
    })
    location.reload()
  }
})
  • vite打包构建的页面写法
/**
 * @description 监听路由错误,正则匹配对应的错误消息后,自动刷新界面
 * 解决前端发版出现-跳转路由页面加载该页面js文件404时,触发router.onError的场景
 */
router.onError((error) => {
  if (error.message.includes('Failed to fetch dynamically imported module')) {
    Message({
      message: '系统已升级,正在刷新本地存储,请稍候...',
      type: 'warning',
      duration: 1500,
      offset: 60
    })
    location.reload()
  }
})
2. vue-router跳转vue页面时,此vue文件出现了阻塞性错误

比如:.vue 页面一开始就出现语法错误:

<template>
...........
</template>
<script>
const obj = {}
console.log(obj.name.toString()) // 阻塞性错误
.............
</script>
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐