鍍金池/ 問(wèn)答/HTML/ vue項(xiàng)目中如何在關(guān)閉瀏覽器的時(shí)候清除localstorage里的數(shù)據(jù),不考慮s

vue項(xiàng)目中如何在關(guān)閉瀏覽器的時(shí)候清除localstorage里的數(shù)據(jù),不考慮session

可以在打開(kāi)瀏覽器的時(shí)候判斷么

回答
編輯回答
故林

推薦使用sessionStorage


要想在關(guān)閉瀏覽器的時(shí)候清除localStorage會(huì)有這么幾種情況無(wú)法保證清除:
1、使用window。onbeforeunload,雖然瀏覽器有這么一個(gè)事件,但不是都一定能觸發(fā)的,你可以試試在這個(gè)事件里面彈出一個(gè)確認(rèn)框試試
2、用戶關(guān)閉vue的途徑很多,例如:關(guān)閉標(biāo)簽關(guān)閉瀏覽器、關(guān)閉電腦、停電突然關(guān)閉電腦等等,諸多情況都無(wú)法保證能在vue退出時(shí)清除localStorage里面的數(shù)據(jù)


若一定要使用localStorage,不妨換個(gè)思路解決問(wèn)題,在vue項(xiàng)目啟動(dòng)的時(shí)候,在最外層的.vue(一般是App.vue)beforeCreate或者created周期獲取存儲(chǔ)在本地的localStorage數(shù)據(jù),若存在(注意用if進(jìn)行判斷)清除,同時(shí)可以在beforeDestory周期也加上清除數(shù)據(jù),若項(xiàng)目正常關(guān)閉,那么會(huì)清除數(shù)據(jù),多一份保障。


希望我的回答對(duì)你有所幫助!
2018年5月24日 02:13
編輯回答
離魂曲

刷新就清空請(qǐng)用vuex或者或者eventBus全局變量也行。
刷新不清空關(guān)閉窗口才清空請(qǐng)用sessionStorage。
關(guān)閉瀏覽器都不清空才使用localStorage。

2018年8月19日 09:13
編輯回答
尤禮
// 瀏覽器關(guān)閉事件
window.onbeforeunload = function (e) {
    // 清除
};

既然你關(guān)閉瀏覽器要清除,為什么不選擇sessionStorage呢?

2017年7月14日 06:07