软件教程 2025年08月6日
0 收藏 0 点赞 421 浏览 801 个字
摘要 :

我们在学习vue-router的编程式导航时,我们发现如果多次重复点击某个按钮触发页面跳转,会出现如下“NavigationDuplicated”错误,这里我先贴上我的部分代码: // templat……

我们在学习vue-router的编程式导航时,我们发现如果多次重复点击某个按钮触发页面跳转,会出现如下“NavigationDuplicated”错误,这里我先贴上我的部分代码:

// template中菜单按钮
<button @click="toBlog">博客</button>

// 对应的click事件的跳转方法
toBlog(){
    this.$router.push("/blog");
}

// 路由配置
{
    name:"Blog",
    path:"/blog",
    component:()=>import('@/components/Blog.vue')
}

连续多次点击博客按钮,会出现如下错误:

NavigationDuplicated: Avoided redundant navigation to current location: “/blog”.

vue-router重复push出现NavigationDuplicated问题解决
虽然对代码运行没有任何影响,但是看上去还是很不爽!

1、问题出现原因:

重复路由跳转,我们当前路由是博客页面/blog,但是再点击博客按钮进行this.$router.push操作,要跳转的页面还是/blog博客页面。

2、解决办法有两种:

1)升级vue-router版本为3.0即可解决,打开项目终端运行如下命令:

npm i vue-router@3.0 -S

2)修改VueRouter原型对象上的push方法,在router文件夹下的index.js中的Vue.use(VueRouter)代码下方加入如下代码:

//获取原型对象上的push函数
const originalPush = VueRouter.prototype.push
//修改原型对象中的push方法
VueRouter.prototype.push = function push(location) {
  return originalPush.call(this, location).catch(err => err)
}

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/5964.html

管理员

相关推荐
2025-08-06

文章目录 一、Promise基础回顾 二、Promise 与 axios 结合使用场景及方法 (一)直接返回 axios …

269
2025-08-06

文章目录 一、模块初始化时的内部机制 二、常见导出写法的差异分析 (一)写法一:module.exports…

107
2025-08-06

文章目录 一、ResizeObserver详解 (一)ResizeObserver是什么 (二)ResizeObserver的基本用法 …

683
2025-08-06

文章目录 一、前期准备工作 (一)下载相关文件 (二)安装必要工具 二、处理扣子空间生成的文件…

338
2025-08-06

文章目录 一、官方文档 二、自动解包的数据类型 ref对象:无需.value即可访问 reactive对象:保持…

371
2025-08-06

文章目录 一、Hooks的工作原理 二、在if语句中使用Hook会出什么岔子? 三、React官方的Hook使用规…

843
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号