每日面试题打卡【4】

105 阅读1分钟

🤔️刷新浏览器之后,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))
  })

}