3 回答
慕勒3428872
TA贡献1848条经验 获得超6个赞
刷新就清空请用vuex或者或者eventBus全局变量也行。
刷新不清空关闭窗口才清空请用sessionStorage。
关闭浏览器都不清空才使用localStorage。
慕码人2483693
TA贡献1860条经验 获得超9个赞
// 浏览器关闭事件
window.onbeforeunload = function (e) {
// 清除
};
既然你关闭浏览器要清除,为什么不选择sessionStorage呢?
ITMISS
TA贡献1871条经验 获得超8个赞
推荐使用sessionStorage
要想在关闭浏览器的时候清除localStorage
会有这么几种情况无法保证清除:
1、使用window。onbeforeunload
,虽然浏览器有这么一个事件,但不是都一定能触发的,你可以试试在这个事件里面弹出一个确认框试试
2、用户关闭vue
的途径很多,例如:关闭标签
、关闭浏览器
、关闭电脑
、停电突然关闭电脑
等等,诸多情况都无法保证能在vue
退出时清除localStorage
里面的数据
若一定要使用localStorage
,不妨换个思路解决问题,在vue
项目启动的时候,在最外层的.vue(一般是App.vue)
的beforeCreate
或者created
周期获取存储在本地的localStorage
数据,若存在(注意用if进行判断)
则清除
,同时可以在beforeDestory
周期也加上清除数据,若项目正常关闭,那么会清除数据,多一份保障。
希望我的回答对你有所帮助!
添加回答
举报
0/150
提交
取消