query传参
第一种
this.$router.push({ path: '/discomfortBook', query: {a:1, b:2, c:3 }})
url为
控制台打印:
第二种
this.$router.push({path:'/discomfortBook', query: {obj: {a:1, b:2, c:3 }}})
url 为
注 推荐方式二,如果属性比较多的时候,第一种传参会把query里面的字段全部都暴露在url地址栏中,url会比较长,还有可能会导致url超出chrome规定url最长字节长度(2m)
params传参
this.$router.push({name: 'discomfortBook', params: { obj: {a: 1, b:2, c: 3}}})
url 为
控制台:
刷新页面后,obj的值会成这样
解决: JSON.stringify() 和 JSON.parse()转一下
this.$router.push({name: 'discomfortBook', params: { obj: JSON.stringify({a:1, b:2, c:3}) }})
JSON.parse(this.$route.params.obj)