路由跳转传参
时间: 2023-07-28 21:29:51 浏览: 89
在路由跳转中传递参数,可以使用 URL 查询字符串、路由参数、state 等方式。
1. URL 查询字符串
URL 查询字符串是将参数附加到 URL 后面的一种方式,例如:
```javascript
history.push('/path?name=value');
```
在目标路由组件中,可以使用 `location.search` 来获取查询字符串,例如:
```javascript
const search = props.location.search; // ?name=value
const params = new URLSearchParams(search);
const name = params.get('name'); // value
```
2. 路由参数
路由参数是将参数嵌入到 URL 路径中的一种方式,例如:
```javascript
history.push('/path/:id', { id: 123 });
```
在目标路由组件中,可以使用 `props.match.params` 来获取路由参数,例如:
```javascript
const id = props.match.params.id; // 123
```
3. state
state 是在路由跳转时传递的一个对象,例如:
```javascript
history.push('/path', { name: 'value' });
```
在目标路由组件中,可以使用 `props.location.state` 来获取 state,例如:
```javascript
const state = props.location.state; // { name: 'value' }
```
需要注意的是,state 传递的数据不会被保存在 URL 中,刷新页面后会丢失。
阅读全文