router.push传递对象参数
时间: 2024-07-31 12:01:40 浏览: 108
【JavaScript源代码】vue 页面跳转的实现方式.docx
在Vue.js中,`router.push` 方法用于导航到一个新的路由,当你需要传递对象作为参数时,可以将该对象转换为字符串,然后在URL中编码,再传递给`push`。这是因为浏览器的URL有长度限制,并且直接传递复杂的数据结构可能会导致URL变得过长或无法解析。
例如,假设你有一个对象:
```javascript
const data = { id: 1, name: 'John' };
```
你可以将其序列化为JSON字符串:
```javascript
const jsonString = JSON.stringify(data);
```
然后在`router.push`中这样使用:
```javascript
this.$router.push({ path: '/detail', query: { obj: jsonString } });
```
在目标路由接收参数的地方,你需要解码这个字符串:
```javascript
export default {
async created() {
const decodedData = JSON.parse(this.$route.query.obj);
// 现在你可以访问解码后的数据
console.log(decodedData.id); // 输出1
}
}
```
阅读全文