首页 > 其他分享 >vue-router 跳转异常 Error: Navigation cancelled from “/“ to “/home“ with a new navigation.

vue-router 跳转异常 Error: Navigation cancelled from “/“ to “/home“ with a new navigation.

时间:2024-08-28 10:26:49浏览次数:6  
标签:vue err 跳转 location router push home prototype

异常信息:Error: Havigation cancelled from"/" to "/home" with a new navigation ,如下图:

原因:

        1、这个错误是vue-router内部错误,没有进行catch处理,导致的编程式导航跳转问题,往同一地址跳转时会报错的情况。push和replace 都会导致这个情况的发生。 

        2、[email protected]版本及以上回调形式已经改成promise api的形式了,返回的是一个promise,如果路由地址跳转相同, 且没有捕获到错误,控制台始终会出现如图所示的警告 (注:3.0以下版本则不会出现以下警告!!!,因路由回调问题…) 

解决:

方案一:

        安装vue-router3.0以下版本:先卸载3.0以上版本然后再安装旧版本 npm install [email protected] -S

方案二:

        针对于路由跳转相同的地址添加catch捕获一下异常:this.$router.push(‘/location’).catch(err => { console.log(err) })

方案三:

        在main.js下注册一个全局函数即可 (注:此处理方案只针对于vue-router 3.0以上版本哈!!!)

import Router from 'vue-router'

const originalPush = Router.prototype.push
Router.prototype.push = function push(location) {
  return originalPush.call(this, location).catch(err => err)
}

注:官方[email protected]及以上新版本路由默认回调返回的都是promise,原先就版本的路由回调将废弃!!!!

方法四(重写push):

const originalPush = VueRouter.prototype.push;
VueRouter.prototype.push = function push(location) {
  return originalPush.call(this, location).catch((err) => err);
};

方法五 在router的index.js中插入以下代码解决:

const originalPush = VueRouter.prototype.push;
const originalReplace = VueRouter.prototype.replace;

//push
VueRouter.prototype.push = function push(location, onResolve, onReject) {
  if (onResolve || onReject)
    return originalPush.call(this, location, onResolve, onReject);
  return originalPush.call(this, location).catch(err => err);
};

//replace
VueRouter.prototype.replace = function push(location, onResolve, onReject) {
    if (onResolve || onReject)
        return originalReplace.call(this, location, onResolve, onReject);
    return originalReplace.call(this, location).catch(err => err);
};
 

本文使用得是方案一,降低vue-router版本:

原版本为 vue-router 3.2.0,卸载 npm uninstall vue-router 

安装 npm install vue-router@2 

安装完成后,package.json 即可查看依赖: 

再次登录跳转,退出后未发现异常,希望本文对你有帮助。 

标签:vue,err,跳转,location,router,push,home,prototype
From: https://blog.csdn.net/hefeng_aspnet/article/details/141606910

相关文章

  • vue+echarts实现地图及飞线图
    参考文章:https://www.cnblogs.com/linjiangxian/p/18168242在文章的基础上加了一些注释并修改缩放时下层有地图重叠的问题效果:china.json文件来源于datav官网下载:https://geo.datav.aliyun.com/areas_v3/bound/100000_full.json<template><divclass="mapFlyLine"ref="m......
  • Vue2中的事件修饰符 用于处理DOM事件的触发方式
    一、.stop1.功能:阻止事件冒泡,即停止事件向上传播到父元素。2.代码演示:<div@click="parentClick"> <[email protected]="childClick">Clickme</button></div>二、.prevent1.功能:阻止默认行为,例如阻止表单提交或链接跳转。2.代码演示:<[email protected]="su......
  • vue全局指令按钮权限控制
    方法一:指令.js//注册一个全局自定义指令`v-has-permission`Vue.directive('has-permission',{bind(el,binding,vnode){//获取绑定的权限值constpermission=binding.value;//检查用户是否拥有该权限consthasPermission=checkUserPermissio......
  • vue:父子组件的通信
    上一篇:vue组件化开发在上一篇文章中,我们申明了一点,那就是组件之间是独立的,除非构建了通信。组件间为什么要构建通信?在单一文件中写上整个网站的代码逻辑,这无疑使得维护成本巨大。所以我们选择了组件化开发,把组件间独立起来,这样谁也不干涉谁,是谁的逻辑就在谁的文件中实现......
  • 基于ssm+vue党员管理系统设计与实现【开题+程序+论文】
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息化技术的飞速发展,传统的手工党员管理模式已难以满足当前复杂多变的党务工作需求。党员作为党组织的基石,其信息的准确性、管理的效率性直接关......
  • 基于ssm+vue法律知识咨询普及系统【开题+程序+论文】
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在当今社会,随着法治建设的不断推进和公民法律意识的日益增强,法律知识咨询与普及成为了社会发展的重要需求。然而,面对纷繁复杂的法律条文与不断更新的......
  • 基于ssm+vue的校园心理咨询室系统【开题+程序+论文】
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着社会的快速发展与竞争的日益激烈,大学生面临着学业压力、人际关系、职业规划等多重挑战,心理健康问题日益凸显。传统的心理咨询方式受限于时间、地......
  • 基于ssm+vue的宠物领养系统【开题+程序+论文】
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着现代社会生活节奏的加快与人际关系的日益复杂,宠物逐渐成为许多人生活中不可或缺的伙伴,它们不仅能够提供情感慰藉,还能在孤独时给予陪伴。然而,宠物......
  • 基于ssm+vue房屋租赁系统的设计与实现【开题+程序+论文】
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着城市化进程的加速和人口流动性的增强,房屋租赁市场日益繁荣,成为现代都市生活中不可或缺的一部分。然而,传统的房屋租赁方式往往存在信息不对称、流......
  • 基于ssm+vue废品回收管理系统设计与实现【开题+程序+论文】
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着社会的快速发展和人们生活水平的不断提升,垃圾产生量急剧增加,垃圾分类与回收已成为环境保护和可持续发展的关键议题。然而,当前废品回收领域仍面临......