关于socket存储在vuex中 刷新页面报错

问题重现之前socket页面放在子组件中,所以都是从父组件进去socket页面,刷新页面也会回到父组件,所以一直都正常后来需要把socket页面从子组件移出来,这样一刷新页面就报错如下
摘要由CSDN通过智能技术生成
问题描述

之前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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值