1.簡單的介紹一下localStorage,sessionStorage,cookie
localStorage:僅在客戶端存儲不參與服務器通信,存儲大小一般為5M,如果不是人為清除,那么即使是關閉瀏覽器也會一直存在。
sessionStorage:僅在客戶端存儲不參與服務器通信,存儲大小一般為5M,會話級存儲,也就是說如果關閉當前頁面或者瀏覽器那么就會清除。
cookie:客戶端存儲,參與服務器通信,存儲大小為4k,可設置生命周期,在設置的生命周期內(nèi)有效。
2.寫法
localStorage.setItem("temp",arr) //存儲
localStorage.getItem("temp") //讀取
localStorage.removeItem("arr"); //刪除
localStorage.clear(); //清空注意:存入的數(shù)據(jù)只能以字符串形式存入
提供轉(zhuǎn)JOSN數(shù)據(jù)方法:
obj = JSON.stringify(obj); //JSON對象轉(zhuǎn)JSON字符串
obj=JSON.parse(localStorage.getItem("temp2")); //JSON字符串轉(zhuǎn)JSON對象
-----------------------------------------------------------------------------
sessionStorage.setItem("temp", arr); // 存儲
sessionStorage.getItem("temp"); //讀取跟localStorage寫法一樣
-----------------------------------------------------------------------------
cookie在vue項目中
cnpm install js-cookie --save //安裝
import Cookies from 'js-cookie' //引入
Cookies.set('title', this.form.title) //存儲
this.title = Cookies.get('title') //讀取原生的cookie自己封裝一個即可使用
3.需要注意的點
1.不同瀏覽器無法共享localStorage,
2.相同瀏覽器的不同頁面間可以共享相同的 localStorage但是前提必須是在同一域名和端口下。如果一個標簽頁包含多個iframe標簽且他們屬于同源頁面,那么他們之間是可以共享sessionStorage的。
3.在谷歌無痕模式下,localStorage、cookie是讀取不到的,但是你可以新增數(shù)據(jù)然后讀取,但是關閉頁面后再打開還是會清空。
項目上可能遇到的坑:
我明明設置了localstorage為什么在新打開的頁面中沒有獲取到?
我們常常在本地寫代碼的時候可能會使用的地址是http://localhost:9527,但是我們在項目中新打開一個項目的頁面的時候他打開的可能是network地址http://192.168.2.115:9527/所以就會出現(xiàn)讀取不到localstorage的情況,這時,我們用network地址打開項目就可以獲取到本地存儲的值了。network地址和本地地址域名是不一樣的,所以獲取不到存儲的值。
該文章在 2023/3/25 0:09:48 編輯過