Vue中this.$router.push参数获取

本文详细介绍了在Vue.js中通过路由进行参数传递的两种主要方式:params和query,并提供了具体的使用示例。同时,还讨论了如何记录页面来源以便进行后续的不同操作。

传参的两种方式

一、params

由于动态路由也是传递params的,所以在this.$router.push()方法中path不能和params一起使用,否则params将无效。需要用name来指定页面,也就是说除了用path属性跳转页面我们还可以通过路由配置的name属性跳转页面

路由:

跳转页面方式:

如上图中两种方式都可以跳转到指定页面

通过name获取页面,传递params 

在目标页面通过this.$route.params.id获取参数

二、query

跳转方式为this.$router.push({path:'/AddShop',query:{id:val.ID})

在目标页面通过this.$route.query.id获取参数

三、进入页面后记录来源(如b页面为复用页面,则可以区分来源进行后续不同操作)

beforeRouteEnter(to, from, next) {
        console.log(to, from, '----------');
        next();
}

官网详解 https://router.vuejs.org/zh/guide/advanced/data-fetching.html#%E5%9C%A8%E5%AF%BC%E8%88%AA%E5%AE%8C%E6%88%90%E5%89%8D%E8%8E%B7%E5%8F%96%E6%95%B0%E6%8D%AE

 

记录以供加深印象。

 

Vue3中,使用`this.$router.push`方法进行路由跳转时,可以通过不同的参数形式进行传递。根据引用[1]中的内容,以下是几种常见的参数获取方法: 1. 参数为字符串,即路径名称: ```javascript this.$router.push('/home'); ``` 2. 参数为对象: ```javascript this.$router.push({ path: '/home' }); ``` 3. 参数为路由命名: ```javascript this.$router.push({ name: 'Home' }); ``` 4. 带传递参数: ```javascript this.$router.push({ name: 'Home', params: { user: 'david' } }); ``` 5. 带查询参数: ```javascript this.$router.push({ path: '/home', query: { user: 'david' } }); ``` 在接收跳转的页面中,可以通过`this.$route.params`来获取路由参数。如果是使用params进行传参,可以使用`this.$route.params`来接收参数。例如: ```javascript const user = this.$route.params.user; ``` 需要注意的是,如果使用params进行传参,参数会显示在URL上,而使用query进行传参,参数会自动拼接在URL后面。另外,如果不在路由上写参数参数仍然可以传递过去,但不会在URL上显示,并且在跳转到其他页面或刷新页面时,参数会丢失。因此,如果依赖这些参数进行HTTP请求或其他操作,可能会失败。可以通过`this.$route.query`来获取带查询参数参数值。例如: ```javascript const site = this.$route.query.site; const bu = this.$route.query.bu; ``` 综上所述,这是在Vue3中使用`this.$router.push`方法进行路由跳转获取参数的方法。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值