问题如下:
当前需要在一个页面点击某个具体的数据并保存下来以便跳转到下个页面的时候使用
传递一个具体的值过去
当时我在data中定义了一个sendMsg:{}
期间在代码中给sendMsg赋值
传值的时候使用了localStroage.setItem(“msg”,this.sendMsg)
却忽略了一个问题-----我定义的sendMsg是一个对象
在另一个页面接收的时候出现问题—打印接收到的值为Object
解决措施如下
localStorage.setItem("msg",JSON.stringify(this.myMsg))
let msg=JSON.parse(localStorage.getItem("msg"))
console.log(msg)
localStorage.removeItem('msg');
众所周知localStroage是长时效性的存储方式
以上代码中的最后一行可以在使用完毕之后对存储的东西进行清空,以便于节省内存
但是只要是操纵localStroage便会造成内存的一系列问题
为了方便,也可选用如下方案
sessionStorage.setItem("msg",JSON.stringify(this.myMsg))
let msg=JSON.parse(sessionStorage.getItem("msg"))
console.log(msg)
相比之下session方式比local方式的好处在于当你关闭浏览器的时候它便会自动销毁 不需要进行最后一步的手动清除
在研究完好多办法之后,由于个人能力有限无法使用vuex对此问题进行处理,欢迎各位大佬指导
本文详细介绍了如何在不同页面间正确传递复杂数据类型,如对象和数组,利用JSON.stringify和JSON.parse方法配合localStorage或sessionStorage实现数据的序列化与反序列化,确保数据完整性和提高内存管理效率。
1万+

被折叠的 条评论
为什么被折叠?



