先補充下localStorage 知識點:
JS對象
讀取形式:
localStorage.name
添加/修改
localStorage.name = "xuanyuan"
其中"xuanyuan"只能是字符串形式(目前為止只支持字符串)。所以存儲時是JSON對象時需要執行下JSON.stringify,所以獲取時需要執行下JSON.parse
刪除
detele localStorage.name
API
獲取鍵值對數量
localStorage.length
讀取
localStorage.getItem('name'), localStorage.key(i)
添加/修改
localStorage.setItem('name','xuanyuan')
刪除對應鍵值
localStorage.removeItem('name')
刪除所有數據
localStorage.clear()
順便說下,localStorage有效期是永久的。一般的瀏覽器能存儲的是5MB左右。sessionStorage api與localStorage相同。
sessionStorage默認的有效期是瀏覽器的會話時間(也就是說標簽頁關閉后就消失了)。
localStorage作用域是協議、主機名、端口。(理論上,不人為的刪除,一直存在設備中)
sessionStorage作用域是窗口、協議、主機名、端口。
知道了這些知識點后,你的問題就很好解決了。
localStorage是window上的。所以不需要寫this.localStorage,你這里的this,是指vue實例。
方案一、
// 這里寫的答案是指data.body.data是JSON。不是JSON則不需要JSON.parse和JSON.stringify
存儲:localStorage.data = JSON.stringify(data.body.data);
獲取:JSON.parse(localStorage.data);
方案二、
存儲:localStorage.setItem('data',JSON.stringify(data.body.data));
獲取:JSON.parse(localStorage.getItem('data'));