1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 解决vue 跳转相同路由携带不同参数 页面不渲染问题

解决vue 跳转相同路由携带不同参数 页面不渲染问题

时间:2021-02-06 15:41:16

相关推荐

解决vue 跳转相同路由携带不同参数 页面不渲染问题

项目中遇到跳转详情,但是详情中侧边有小列表的存在,这样就是相当于从详情跳到详情,如果直接使用this.router.push的方式,则会发现页面不会重新渲染,写在created和mounted内的方法并不会执行,解决这个问题的方式如下:路由监听一、watch:在方法里面还是使用this.router.push的方式,则会发现页面不会重新渲染,写在created和mounted内的方法并不会执行,解决这个问题的方式如下: 路由监听 一、watch: 在方法里面还是使用this.router.push的方式,则会发现页面不会重新渲染,写在created和mounted内的方法并不会执行,解决这个问题的方式如下:路由监听一、watch:在方法里面还是使用this.router.push进行跳转,但是添加路由监听:

watch: {// 利用watch方法检测路由变化:$route: function(to, from) {if (to.fullPath !== from.fullPath) {this.currentPage = this.$route.query.code;//获取参数}}}

到这里基本上可以使页面数据进行重新渲染了,但是连续点击同一条两次的话,则会报下面的错误:

Uncaught (in promise) Error: Avoided redundant navigation to current location:“《当前页面的地址》”

为了解决这个问题,可以在路由文件内添加如下代码:

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

二、beforeRouteUpdate

其实和方法一是一样的,也是监听路由,点击同样的路由报上面错误解决方式也是一样的。

beforeRouteUpdate (to, from, next) {next();if (to.fullPath !== from.fullPath) {this.currentPage = this.$route.query.code;}},

即可实现跳转携带不同参数跳转相同路由的需求。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。