vue-router切换不同参数共用路由来显示页面的方法

简介: 遇到需要切换页面显示,重新请求接口但是前端路由不变时的一种处理方法

项目基于element-UI开发。页面左侧菜单控制右半部分内容显示,但是设计稿上有几个差异较大的页面需要共用一个路由,高亮显示菜单。
网上搜索一番后决定采取query传参的方式来在同一个路由上切换显示不同页面。

处理方法

  • 页面内监听路由变化

watch: {
    $route(to, from) {
        // 获取query中的参数
        if (to.query.param1) {
        this.param1 = to.query.param1
        }
    },
},
  • methods跳转方法修改

methods: {
    ...
    edit(id) {
      this.$router.push({ path: '/xxx/xxx', query: { id: id } })
    },
    ...
}

效果->路由发生改变并跳转到了当前页面,同时页面左侧菜单高亮保持不变,数据进行了重新加载

可能遇到的问题

跳转当前路由可能遇到如下错误

message: "Navigating to current location (XXX) is not allowed"

此时在src/router/index.js里导入router的后面追加如下方法即可


import VueRouter from 'vue-router'
...

// fix Navigating to current location
const originalPush = VueRouter.prototype.push
VueRouter.prototype.push = function push(location) {
  return originalPush.call(this, location).catch(err => err)
}

参考资料

Vue-router切换不同参数的共用路由问题?
响应路由参数的变化

相关文章
|
3月前
|
资源调度 JavaScript 前端开发
路由管理:Vue Router的使用和配置技巧
【10月更文挑战第21天】路由管理:Vue Router的使用和配置技巧
55 3
|
3月前
|
JavaScript API
vue 批量自动引入并注册组件或路由等等
【10月更文挑战第12天】 vue 批量自动引入并注册组件或路由等等
|
3月前
|
JavaScript 前端开发 API
vue3中常用插件的使用方法:按需引入自定义组件,自动导入依赖包,自动生成路由,自动生成模拟数据
vue3中常用插件的使用方法:按需引入自定义组件,自动导入依赖包,自动生成路由,自动生成模拟数据
929 0
|
3月前
|
JavaScript 前端开发 UED
vue中vue-router路由懒加载(按需加载)的作用以及常见的实现方法
vue中vue-router路由懒加载(按需加载)的作用以及常见的实现方法
228 1
|
3月前
|
JavaScript 前端开发
Vue开发必备:$nextTick方法的理解与实战场景
Vue开发必备:$nextTick方法的理解与实战场景
225 1
|
3月前
|
存储 消息中间件 JavaScript
Vue3 多种组件通讯方法
【10月更文挑战第6天】
|
3月前
|
JavaScript 前端开发 UED
|
3月前
|
缓存 JavaScript
|
3月前
|
JavaScript 前端开发 API
前端技术分享:Vue.js 动态路由与守卫
【10月更文挑战第1天】前端技术分享:Vue.js 动态路由与守卫
|
2月前
|
JavaScript UED
"Vue实战技巧大揭秘:一招解决路由跳转页面不回顶部难题,让你的单页面应用用户体验飙升!"
【10月更文挑战第23天】在Vue单页面应用中,点击路由跳转时,默认情况下页面不会自动滚动到顶部,这可能影响用户体验。本文通过一个新闻网站的案例,介绍了如何使用Vue-router的全局前置守卫和`scrollBehavior`方法,实现路由跳转时页面自动滚动到顶部的功能,提升用户浏览体验。
102 0

热门文章

最新文章

相关实验场景

更多