vuerouter is not defined-金沙1005

vuerouter is not defined_vue router replace问题:项目中需要对用户是否登录进行判断,如果用户未登录或者token过期就需要跳转登录页面,进行登录验证。所以需要做一个拦截,在跳转登录页面时报了一个错。报错如下图所示:原因:这个错误是vue-router内部错误,没有进行catch处理,导致的编程式导航跳转问题,向同一地址跳转时会报错的情况(push和replace都会导致这个情况的发生)。解决:方案一:安装vue-router3.0以下版本,先卸载3.0以上版本然后再安装旧版本。npminstallvu

问题:

项目中需要对用户是否登录进行判断,如果用户未登录或者 token 过期就需要跳转登录页面,进行登录验证。所以需要做一个拦截,在跳转登录页面时报了一个错。

报错如下图所示:
在这里插入图片描述

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

解决:

方案一:
安装 vue-router 3.0 以下版本,先卸载 3.0 以上版本然后再安装旧版本 。

npm install vue-router@2.8.0 -s
vuerouter is not defined_vue router replace

为防止网络爬虫,请关注公众号回复”口令”

激活idea 激活clion
datagrip dataspell
dotcover dotmemory
dottrace goland
phpstorm pycharm
resharper reshac
rider rubymine
webstorm 全家桶

方案二:
针对于路由跳转相同的地址添加 catch 捕获一下异常。

this.$router.push({ 
   path:'/register'}).catch(err => { 
    console.log(err) })

方案三:
在路由 router 里面加上以下这段代码

// 解决编程式路由往同一地址跳转时会报错的情况
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中 router.push、router.replace、router.go 的区别

router.push(location) 相当于 window.history.pushstate
想要导航到不同的 url,则使用 router.push 方法。
这个方法会向 history 栈添加一个新的记录,所以,当用户点击浏览器后退按钮时,则回到之前的 url。
router.replace(location) 相当于 window.history.replacestate
跟 router.push 很像,区别:它不会向 history 添加新记录,而是替换掉当前的 history 记录,点击返回会跳转到上上个页面。
router.go(n) 相当于 window.history.go
向前或者向后跳转n个页面,n可为正整数或负整数。可以通过 window.history.length 得到历史记录栈中一共有多少页。

vue router 的导航方法 (push、 replace、 go) 在各类路由模式 (history、 hash 和 abstract) 下表现一致。

js555888金沙老品牌的版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由思创斯整理,转载请注明出处:https://ispacesoft.com/128271.html

(0)

相关推荐

  • django uwsgi vue部署(不使用nginx)「建议收藏」背景 项目在内网部署,本来想使用nginx部署,因为某些原因,所以采用了django uwsgi vue部署的部署方式 部署流程 vue打包 不熟悉vue,按照给的步骤进行 执行npm run lin

  • vue海报二维码组合图片生成和下载-qrcodejs2-html2canvas「终于解决」

    vue海报二维码组合图片生成和下载-qrcodejs2-html2canvas「终于解决」项目核心完整代码-下载演示安装npminstallqrcodejs2–savenpminstallhtml2canvas–save核心代码-具体页面结构请看完整代码//项目中使用-需要的地方直接引入使用即可importqrcodefrom”qrcodejs2″;importhtml2canvasfrom”html2canvas”;//二维码生成/***@description生成二维码*@param{number}q

  • vue全家桶(vue2和vue3)[亲测有效]vue全家桶(vue2和vue3)1.vue的router使用1.1vue2下的router使用//首先引入库importvuerouterfrom’vue-router’;//将各个路由页面组装到数组routes里面constroutes=[];//创建一个路由实例对象constrouter=newvuerouter({routes})//导出这个路由exportdefaultrouter然后在main.js导入importrouterfr

  • idea如何创建vue项目_创建项目使用idea创建vue项目1.file==>new==>project2.点击staticweb,选择右边的vue.js,点击下一步3.修改项目名称,其它的默认值可以不修改4.后续许多页面的默认值可以不修改,一直点击下一步5.创建完成之后,点击左下角的npm,双击start,如果报错,打开终端,输入npmi,然后回车5.再点击start即可,蓝色地址即是项目访问地址。…

  • vue性能优化方法_hirevue参考云加社区一、v-for遍历必须为item添加key,且避免同时使用v-if在列表数据进行遍历渲染时,需要为每一项item设置唯一key值,方便vue.js内部机制精准找到该条列表数据。当state更新时,新的状态值和旧的状态值对比,较快地定位到diff。我们在使用的使用经常会使用index(即数组的下标)来作为key,但其实这是不推荐的一种使用方法。varlist=[{id:1,name:’test1′,},{.

  • 4 — vue钩子函数「建议收藏」vue生命周期钩子函数

  • vue cli安装_element安装教程介绍vue中安装axios的方法。

  • vuecli项目实战_vuecli搭建流程这里我试着去简单分析一个完整的vue项目。好吧,说它完整,其实只是基础而已,算不上完整。一、安装node.js,百度nodejs去金沙1005官网下载安装文

发表回复

您的电子邮箱地址不会被公开。

联系金沙1005

关注“java架构师必看”公众号

回复4,添加站长微信。

附言:ispacesoft.com网而来。

关注微信
网站地图