this.$router.resolve({ name: 'routeName', params: { key: value } }) 获取地址栏params值
时间: 2024-02-18 09:02:47 浏览: 65
这段代码是用来获取路由参数值并生成对应的路由地址。但是它并不能直接获取地址栏中的参数值。如果你要获取地址栏参数值,可以使用以下代码:
```
const params = new URLSearchParams(window.location.search)
const value = params.get('key')
```
其中,`window.location.search` 可以获取地址栏中的查询参数部分,包括 `?` 符号。`URLSearchParams` 是一个 JavaScript 内置对象,可以方便地解析和操作查询参数。`get` 方法可以获取指定参数的值。
相关问题
获取this.$router.resolve params传过来的值
`this.$router.resolve` 方法返回的是一个路由地址对象,其中的 `params` 属性就是路由参数对象。你可以通过访问这个对象的属性来获取对应的值。
例如,如果你有这样一段代码:
```
const resolved = this.$router.resolve({ name: 'routeName', params: { key: 'value' }})
console.log(resolved.params.key)
```
那么输出结果就是 `'value'`,即路由参数中 `key` 属性的值。
当然,如果你要获取路由参数的值,也可以直接在路由组件中使用 `this.$route.params.key` 的方式来获取。这个属性会自动获取路由参数中 `key` 属性的值。
this.$router的resolve函数使用params传参
你可以使用以下代码来使用 `this.$router` 的 `resolve` 函数传递参数:
```javascript
// 假设你要跳转到名为 'user' 的路由,并且需要传递一个名为 'id' 的参数
const routeParams = { id: 123 }
// 使用 resolve 函数生成目标路由的完整路径
const fullPath = this.$router.resolve({
name: 'user',
params: routeParams
}).href
// 通过 $router.push 方法跳转到生成的路径
this.$router.push(fullPath)
```
在上面的示例中,我们使用 `resolve` 函数从路由名称和参数生成目标路由的完整路径,然后通过 `$router.push` 方法跳转到该路径。这样就可以实现使用 `params` 传递参数了。
阅读全文