项目场景:
在实现购物车的案例中,需要将较为复杂结构的数据,通过路由传递给另一个组件。首先排除了使用query参数进行传递,该方法是可行的。但是在地址栏中会显示的很复杂,不是相对完美的解决方案。这里使用了HTML5新增的技术进行数据的传递。
思路是:先将数据转化为字符串,然后通过会话本地存储的方式进行数据存储到浏览器本地,再在需要用到该数据的页面中,获取到这个数据,再转化为JSON格式,以达到获取数据的目的。
解决方案:
数据发送方//在数据发送方的方法中:
sessionStorage.setItem("SKUINFO", JSON.stringify(this.skuInfo));
this.$router.push({
name: "addcartsuccess",
query: { skuNum: this.skuNum },
});
数据接收方
//直接计算出该数据。
computed: {
skuInfo() {
let res = sessionStorage.getItem("SKUINFO");
return JSON.parse(res);
},
},