使用Storage解決網(wǎng)頁數(shù)據(jù)持久化問題

因為react的state中存儲的數(shù)據(jù)在頁面刷新之后會清空(若設定了初始值則會重置為初始值),為了將state中的數(shù)據(jù)保留下來,我想到了HTML5中的localStorage,它的大小為5m,使用瀏覽器的本地存儲來保存鍵值對格式的數(shù)據(jù).

LocalStorage的方法只有5個,直觀易用:

localStorage.key()
//該方法接受一個數(shù)值n作為參數(shù),返回第n個鍵名
localStorage.setItem()
//該方法接受鍵名和鍵值兩個參數(shù),將其存儲到localStorage中,若鍵名存在,則將其覆蓋
localStorage.getItem()
//該方法接受鍵名作為參數(shù),返回鍵值
localStorage.removeItem()
//該方法接受鍵名作為參數(shù),并刪除該鍵值對
localStorage.clear()
//該方法會清空存儲

我使用的方法是,將需要在刷新后保存的數(shù)據(jù)在賦值時使用localStorage.setItem()同步到localStorage中,然后在頁面刷新之后(在react的生命周期方法中)使用localStorage.getItem()取回數(shù)據(jù)

(以Chrome為例)網(wǎng)頁中的localStorage數(shù)據(jù)可以在開發(fā)者工具->Application->Storage中查看

注意事項:
1.localStorage的訪問遵從同源策略,所以不同源的網(wǎng)頁是無法共用localStorage的

2.localStorage不同于sessionStorage,它是沒有過期時間的(sessionStorage的數(shù)據(jù)會在瀏覽器關閉時清空),但它會在執(zhí)行清空瀏覽數(shù)據(jù)時被清空

3.存進localStorage的數(shù)據(jù)會被強制類型轉(zhuǎn)換為string類型

瀏覽器支持情況:

sessionStorage與localStorage的方法完全相同,主要區(qū)別是存儲時間的長短

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容