标签:就会 引入 tor 赋值初始化 https 打开 为什么 清空 vuex
在vue项目中用vuex来做全局的状态管理, 发现当刷新网页后,保存在vuex实例store里的数据会丢失。
原因:
因为store里的数据是保存在运行内存中的,当页面刷新时,页面会重新加载vue实例,store里面的数据就会被重新赋值初始化
解决思路:
将state的数据保存在localstorage、sessionstorage或cookie中,这样即可保证页面刷新数据不丢失且易于读取。
由于vue是单页面应用,操作都是在一个页面跳转路由,因此sessionStorage较为合适,原因如下:
vuex的数据在每次页面刷新时丢失,是否可以在页面刷新前再将数据存储到sessionstorage中呢,是可以的,beforeunload事件可以在页面刷新前触发,但是在每个页面中监听beforeunload事件感觉也不太合适,那么最好的监听该事件的地方就在app.vue中。
vuex中state数据的修改必须通过mutation方法进行修改,因此mutation修改state的同时需要修改sessionstorage,问题倒是可以解决但是感觉很麻烦,state中有很多数据,很多mutation修改state就要很多次sessionstorage进行修改,既然如此直接用sessionstorage解决不就行了,为何还要用vuex多此一举呢?
vuex可以实现数据响应,而sessionstorage是不可以的,我们使用vuex 的主要目的是为了各个组件之间的传参,通过数据改变视图。而sessionstorage是做不到这一点的。
Vuex刷新时数据会消失,那如何解决?为什么还要使用Vuex
标签:就会 引入 tor 赋值初始化 https 打开 为什么 清空 vuex
原文地址:https://www.cnblogs.com/xieyao/p/13265947.html