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