🤔️刷新浏览器之后,vuex的数据是否还存在?如果不存在如何解决?
不存在;在vuex是用来做全局状态管理的,刷新网页之后,保存在vuex的store的数据会丢失。 因为store里的数据是保存在运行内存当中的,刷新页面会重新加载vue实例,所以store的数据会被重新附值初始化。
解决方案(2种):
- vuex-along /:实质就是把vuex中的数据放到local storage或者session stroage中,只不过这个存取过程组件会帮我们实现,我们只需要用vuex的读取方式操作即可。1. 安装vue-along
npm install vuex-along --save
2.配置相关文件
//在store/index.js 中添加以下代码
import VueXAlong from 'vuex-along';
export default new Vuex.Store({
plugins:[VueXAlong({
name:'store',
local:false,
session:{list:[],isFilter:true}
})]
})
- 使用localStorage或sessionStroage
created(){
if(sessionStorage.getItem("store")){
this.$store.replace(Object.assign({},this.$store.state,JSON.parse(sessionStorage.getItem("store"))))
}
window.addEventListener("beforeunload",()=>{
sessionStorage.setItem("store",JSON.stringify(this.$store.state))
})
}