vue如何获取跳转路径参数

寻技术 VUE 2023年08月10日 139

本文小编为大家详细介绍“vue如何获取跳转路径参数”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue如何获取跳转路径参数”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

在Vue中进行路由跳转有两种方式:使用vue-router插件或者直接在页面中使用window.location.href进行跳转。无论是哪种方式,获取跳转路径参数的方法是类似的。

使用vue-router插件进行路由跳转

vue-router是Vue官方提供的路由插件,可以帮助我们在Vue中进行路由控制。在vue-router中,通过$route对象可以获取到当前路由的信息,包括跳转路径参数。

假设我们有一个路由配置如下:

{
  path: '/detail/:id',
  component: Detail
}

这里的:id表示这是一个路径参数,可以通过路由进行传递,例如/detail/123就代表id为123的详情页。

在目标页面Detail中,我们可以通过$route.params来获取传递过来的参数。代码如下:

export default {
  name: 'Detail',
  mounted() {
    const id = this.$route.params.id; // 获取跳转路径参数id的值
    console.log('id:', id);
  }
};

在mounted钩子中,可以通过this.$route.params.id的方式获取到跳转路径中传递过来的id参数。

直接在页面中使用window.location.href进行路由跳转

在Vue中,我们也可以直接使用window.location.href进行页面跳转。例如:

window.location.href = '/detail?id=123';

这里我们将id参数拼接在了跳转的url中,下面我们来看如何在目标页面中获取这个参数。

我们可以使用location.search来获取跳转路径中问号后面的参数部分,然后再使用正则匹配获取我们需要的参数的值。代码如下:

export default {
  name: 'Detail',
  mounted() {
    const query = location.search.substring(1); // 获取跳转路径参数字符串,去掉问号
    const reg = new RegExp(`(^|&)id=([^&]*)(&|$)`); // 匹配id参数的正则表达式
    const id = query.match(reg)[2]; // 获取跳转路径参数id的值
    console.log('id:', id);
  }
};

以上代码通过正则表达式匹配到id参数的值,并且存放在变量id中。

关闭

用微信“扫一扫”