vue-router传对象、数组,刷新后参数丢失

参数丢失情况:

query传参里面有对象的话,页面再次刷新丢失,打印会打印出 [Object,Object] ;

this.$router.push({
    path:'/checkOrder',
    push:{ 
      item:{
        name: 'anna',
        age: 18
      }
    }
})

如果从 A页面 跳转到 B页面需要携带以下 A页面的参数时,在 B页面 刷新时,就会导致参数消失;

解决办法:

(1)可以在A页面中点击跳转的时候,在本地存储一下需要携带的参数(借助localStorage)


//当前页面:
let order = new Order(obj);
this.$router.push({
    path:'/checkOrder',
    push:{ 'order': order }
})

//跳转接收页面:
if( this.$route.query.order instanceof Object){
    setStore("orders", this.$route.query.order);
}
this.order = JSON.parse(getStore("orders"));

(2)使用ES6中的扩展运算符分解对象中的属性

this.$router.push({
   path: './data',
   query: {
     ...item
   }
});
  

(3)先用json的方法将对象转成字符串传递过去,在拿参数时,用json的parse方法把字符串转为对象
 


//当前页面:
let order = JSON.stringify(new Order(obj));
this.$router.push({
    path:'/checkOrder',
    push:{ 'order': order }
})

//跳转接收页面:
this.order = JSON.parse(this.$route.query.order);

你可能感兴趣的:(vue.js,javascript,前端)