zoukankan      html  css  js  c++  java
  • vue-router重写push方法,解决相同路径跳转报错

     修改vue-router的配置文件,默认位置router/index.js

    import Vue from 'vue'
    import Router from 'vue-router'
     
     
    /**
     * 重写路由的push方法
     * 解决,相同路由跳转时,报错
     * 添加,相同路由跳转时,触发watch (针对el-menu,仅限string方式传参,形如"view?id=5")
     */
     
    // 保存原来的push函数
    const routerPush = Router.prototype.push  
    // 重写push函数
    Router.prototype.push = function push(location) {
     
      // 这个if语句在跳转相同路径的时候,在路径末尾添加新参数(一些随机数字)
      // 用来触发watch
      if(typeof(location)=="string"){
        var Separator = "&";
        if(location.indexOf('?')==-1) { Separator='?'; }
        location = location + Separator + "random=" + Math.random();
      }
     
      // 这个语句用来解决报错
      // 调用原来的push函数,并捕获异常
      return routerPush.call(this, location).catch(error => error)
    }
     
     
    Vue.use(Router)
     
    export default new Router({
      routes: [
        {
          path: '/',
       
        }
      ]
    })

    ————————————————
    版权声明:本文为CSDN博主「混乱谜零」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/u013595395/article/details/102912835

  • 相关阅读:
    android studio学习----Android Studio导入github下载的工程--替换方法
    python+selenium 发送邮件
    vue 操作列的自定义
    vue作用域插槽实践
    vue左侧菜单的实现
    Django 解决跨域
    关于 with 语句
    docker
    python连接 ssh
    数据库建表 外键
  • 原文地址:https://www.cnblogs.com/zhilili/p/14609642.html
Copyright © 2011-2022 走看看