为了账号安全,请及时绑定邮箱和手机立即绑定

vue项目中如何在关闭浏览器的时候清除localstorage里的数据,不考虑session

vue项目中如何在关闭浏览器的时候清除localstorage里的数据,不考虑session

SMILET 2019-03-11 17:19:13
可以在打开浏览器的时候判断么
查看完整描述

3 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

刷新就清空请用vuex或者或者eventBus全局变量也行。
刷新不清空关闭窗口才清空请用sessionStorage。
关闭浏览器都不清空才使用localStorage。

查看完整回答
1 反对 回复 2019-03-27
?
慕码人2483693

TA贡献1860条经验 获得超9个赞

// 浏览器关闭事件

window.onbeforeunload = function (e) {

    // 清除

};

既然你关闭浏览器要清除,为什么不选择sessionStorage呢?


查看完整回答
反对 回复 2019-03-27
?
ITMISS

TA贡献1871条经验 获得超8个赞

推荐使用sessionStorage


要想在关闭浏览器的时候清除localStorage会有这么几种情况无法保证清除:
1、使用window。onbeforeunload,虽然浏览器有这么一个事件,但不是都一定能触发的,你可以试试在这个事件里面弹出一个确认框试试
2、用户关闭vue的途径很多,例如:关闭标签关闭浏览器关闭电脑停电突然关闭电脑等等,诸多情况都无法保证能在vue退出时清除localStorage里面的数据


若一定要使用localStorage,不妨换个思路解决问题,在vue项目启动的时候,在最外层的.vue(一般是App.vue)beforeCreate或者created周期获取存储在本地的localStorage数据,若存在(注意用if进行判断)清除,同时可以在beforeDestory周期也加上清除数据,若项目正常关闭,那么会清除数据,多一份保障。


希望我的回答对你有所帮助!


查看完整回答
反对 回复 2019-03-27
  • 3 回答
  • 0 关注
  • 5385 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信