vue路由跳转query携带对象
时间: 2023-09-11 17:09:42 浏览: 195
携带对象的页面跳转
5星 · 资源好评率100%
你可以使用`router.push`方法来进行路由跳转并携带对象。首先,你需要将对象转换为字符串,通常使用`JSON.stringify`方法。然后,你可以将字符串作为参数传递给`router.push`方法的`query`属性。以下是一个示例:
```javascript
import { router } from 'vue-router';
const obj = { name: 'John', age: 25 };
const query = encodeURIComponent(JSON.stringify(obj));
router.push({ path: '/your-path', query: { obj: query } });
```
在目标路由组件中,你可以通过`$route.query`来获取传递的对象。然而,接收到的是字符串形式的对象,因此你需要将其解析为实际的对象。你可以使用`JSON.parse`方法来完成解析:
```javascript
export default {
mounted() {
const query = this.$route.query.obj;
const obj = JSON.parse(decodeURIComponent(query));
console.log(obj); // { name: 'John', age: 25 }
}
}
```
请注意,为了避免特殊字符或空格引起的问题,我们在传递参数之前使用了`encodeURIComponent`进行编码,并在接收参数时使用`decodeURIComponent`进行解码。
阅读全文