首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >[Vue warn]: Error in v-on handler (Promise/async): “NavigationDuplicated: Navigating to current loca

[Vue warn]: Error in v-on handler (Promise/async): “NavigationDuplicated: Navigating to current loca

作者头像
fruge365
发布2025-12-15 09:31:33
发布2025-12-15 09:31:33
1710
举报

一、前言

跳转网页的两种方式:
  1. 声明式导航:利用a标签跳转
代码语言:javascript
复制
 <a href="" target="">文字或图片</a>

_blank表示跳到新页面打开,打开一个新窗口 _self表示当前页面打开链接 _parent表示在父集框架中打开 _top表示在整个窗口中打开 framename表示在指定的框架中打开

  1. 编程式导航:利用js跳转网页

this.$router.push( { path:‘/路径’, query: {参数名:值} } ) this.$router.push( { name:‘名称’, params: {参数名:值} } ) 获取:this.$route.query/params.参数名

二、问题

路由运用編程式导航,一直点击同一个按钮报错
vue重复点击相同路由报错

vue.runtime.esm.js?2b0e:619 [Vue warn]: Error in v-on handler (Promise/async): “NavigationDuplicated: Avoided redundant navigation to current location: “/welcome”.”

在这里插入图片描述
在这里插入图片描述

三、解决

第一种:封装jump方法实现跳转

代码语言:javascript
复制
// minins.js文件
import Vue from "vue";
Vue.mixin({
    methods: {
        jump(path) {
            if(path === this.$route.path) return
            return this.$router.push(path)
        }
    }
})

第二种:修改原型方法

解决前语句:

this.$router.push({ path: ‘/welcome’ })

解决后语句:

this.$router.push({ path: ‘/welcome’ },onComplete => {}, onAbort => {})

意思详见Vue Router官网:https://router.vuejs.org/zh/guide/essentials/navigation.html

最后问题就解决了

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-07-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、问题
  • 三、解决
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档