问题描述
之前socket页面放在子组件中,所以都是从父组件进去socket页面,刷新页面也会回到父组件,所以一直都正常
后来需要把socket页面从子组件移出来,这样一刷新页面就报错如下:
这是因为页面刷新会重新请求,但是没有请求到socket的数据。一开始以为是socket存放在vuex的原因,页面刷新的时候vuex里的数据会重新初始化,导致数据丢失。因为vuex里的数据是保存在运行内存中的,当页面刷新时,页面会重新加载vue实例,vuex里面的数据就会被重新赋值。
所以我试过在页面刷新前把数据存到本地,但不知道为什么无论如何就是获取不到socket,也就无法本地存储。
created () {
//在页面加载时读取sessionStorage里的状态信息
if (sessionStorage.getItem("store") ) {
this.$store.replaceState(Object.assign({}, this.$store.state,JSON.parse(sessionStorage.getItem("store"))))
}
//在页面刷新时将vuex里的信息保存到sessionStorage里
window.addEventListener("beforeunload",()=>{
sessionStorage.setItem("store",JSON.stringify(this.$store.st