当前位置:首页 > 技术文章 > 正文内容

关于Vue页面跳转传参,参数不同, 但页面只获取参数一次的问题

zonemu1周前 (07-26)技术文章3

#头条创作挑战赛#

1.问题描述

问题描述: element 展示表格(页面A),点击表格的每一行的查看详情按钮,可以携带此行的信息参数跳转到另一个页面(页面B),但是从A页面到B页面,只有第一次跳转的时候B页面可以获取到A页面的参数,返回再次A->B ,B页面无法获取到参数。

2.解决办法:

方法一:在接受参数的页面(B页面)添加路由监听

A页面传参:
  pushToRouter(val) {
    this.$router.push({
      path: '/pageRouter/pushPage',
      query: { val: val}
    })
  }
B页面接收参数:
  mounted() {
    this.getParams();
  },
  // 如果不用watch进行监听,则会出现参数只获取一次的情况
  watch: {
    '$route'(){
     this.getParams();
    }
  },
  methods: {
    // 接收参数的方法
  	getParams() {
	  this.param = this.$route.query.val;
	}
  }

方法二:在接受参数的页面(B页面)使用beforeRouteUpdate方法

A页面传参:
  pushToRouter(val) {
    this.$router.push({
      path: '/pageRouter/pushPage',
      query: { val: val}
    })
  }
B页面接收参数:
export default {
// 添加beforeRouteUpdate,注意此方法的位置
  beforeRouteUpdate(to, from, next) {
    next()
    this.getParam();
  },
  name: "pageToRouter",
  data() {
    return {
      param: null
    }
  },
  mounted() {
    this.getParam();
  },
  methods: {
    getParam() {
      this.param = this.$route.query.val;
    }
  }
}

3.结束(贴上代码图片)

A页面传参:


B页面接受参数(方法一):


B页面接收参数(方法二):

相关文章

7种超轻量级的Linux发行版,能够帮助你找到适合自己的操作系统

Linux是一种非常受欢迎的开源操作系统,而且有许多版本可以选择。有时候,你需要一种超轻量级的Linux发行版,它可以在资源有限的设备上运行,并且能够快速启动。本文将介绍7种超轻量级的Linux发行版...

2024前端面试真题之—VUE篇(前端面试题vuex)

添加图片注释,不超过 140 字(可选)1.vue的生命周期有哪些及每个生命周期做了什么? beforeCreate是new Vue()之后触发的第一个钩子,在当前阶段data、methods、com...

「 VUE3 + TS + Vite 」父子组件间如何通信?

组件之间传值,大家都很熟悉,涉及到 VUE3 +TS 好多同学就无从下手了,所以分享这篇文章,希望看完后提起 VUE3+TS 能够不慌不忙。平时使用的函数如:ref、reactive、watch、co...

前端React面试基础系列(React基础篇)

本文阅读8分钟,喜欢的小伙伴可以持续关系小编哦1. 什么是受控组件和非受控组件?受控组件像表单元素在用户输入时,像<input> <select>等元素需要绑定一个 chang...

迁移GIT仓库并带有历史提交记录(git 迁移仓库)

迁移git仓库开发在很多时候,会遇到一个问题。GIT仓库的管理,特别是仓库的迁移。我需要保留已有的历史记录,而不是重新开发,重头再来。我们可以这样做:使用--mirror模式会把本地的分支都克隆。//...

程序员效率提升!使用自动化工具gitx,每周节约半小时

你是否经历过这样的折磨?一个 JIRA 需求要同时修复 dev、qa、staging 三个分支每个版本涉及 A、B、C 三个项目手动执行以下操作:从 dev 切临时分支cherry-pick 提交推送...