美文网首页
vuex中store保存的数据,刷新页面会清空

vuex中store保存的数据,刷新页面会清空

作者: jing_bao | 来源:发表于2018-12-20 10:54 被阅读0次

初用vuex,项目中需要记录一些状态,来判断页面是否为登录状态和页面是否可被编辑,此时用到了vuex中的store来存储一个状态。

//首先 安装vuex
npm install vuex --save  
//新建一个store文件夹,并在里面创建一个index.js文件,并导入
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const store = new Vuex.Store({
    state:{
        //id
        skillId:'',
        //技能状态
        checkStatus:''
    }
})

export default store

这里记录了两个值一个是id一个是状态值checkStatus,然后把创建的store在main.js里导入

import store from "./store"//vuex

至此,我们可以在所需要的vue文件中为其赋值

this.$store.state.skillId = '需要记录的id'
//技能状态
this.$store.state.checkStatus = '需要记录的状态'

赋值后,就可以在需要用到这些id和状态的vue文件中取值

'自己定义的变量名' = this.$store.state.checkStatus

现在,skillId和checkStatus相当于两个全局变量,可以在需要的页面获取值和更改值。但有一个严重的问题就是,在我们刷新页面的时候,vuex数据是重新初始化,无法获取的,导致出现了空值。
但这不是自己想要的结果,所以百度了一圈(https://blog.csdn.net/guzhao593/article/details/81435342http://www.cnblogs.com/padding1015/p/9272809.html),找到了解决办法。
更改store文件下index文件state的定义

const store = new Vuex.Store({
    state:sessionStorage.getItem('state') ? JSON.parse(sessionStorage.getItem('state')): {
        //id
        skillId:'',
        //技能状态
        checkStatus:''
    }
})

以及在App.vue中添加

mounted() {
            window.addEventListener('unload', this.saveState)
        },
        methods: {
            saveState() {
                sessionStorage.setItem('state', JSON.stringify(this.$store.state))
            }
        }

也就是说监听unload方法,如果重载页面就把state存入
sessionStorage,然后在需要state的时候从sessionStorage中取值。

相关文章

  • 面试题

    1、vuex刷新页面后数据不能保存? 因为store里的数据是保存在运行内存中,当页面刷新时,页面会重新加载Vue...

  • vuex的store在刷新后数据被清空

    vuex在页面刷新后,store就会被重置,数据清空。解决方法:在监听到页面刷新时将数据保存到缓存中,再次加载页面...

  • vuex中store保存的数据,刷新页面会清空

    初用vuex,项目中需要记录一些状态,来判断页面是否为登录状态和页面是否可被编辑,此时用到了vuex中的store...

  • vuex

    刷新消失的特性 vuex是刷新即清空数据的, 因为vuex的定位就是一个全局变量集,.因此要在vuex中保存用户信...

  • VUE----解决页面刷新Vuex中的数据清空

    我测试使用的是脚手架2vuex是一个很好用的状态管理模式,但是当我们先将数据保存到store中,然后重新刷新页面会...

  • vuex state刷新状态丢失

    1、原因因为store里的数据是保存在运行内存中的,当页面刷新时,页面会重新加载vue实例,store里面的数据就...

  • F5刷新store数据丢失问题

    1.原因:store的数据是保存在运行内存中的,当页面刷新时,页面会重新加载vue实例,store里的数据就会被还...

  • 解决vuex在刷新后数据丢失的问题

    1.为什么会丢失 store里的数据是保存在运行内存中的,当页面刷新时,页面会重新加载vue实例,store里面的...

  • Vue 刷新网页后 vuex 的 state 数据丢失的解决方案

    为啥会丢失数据 原因很简单,因为 store 里的数据是保存在运行内存中的,当页面刷新时,页面会重新加载 Vue ...

  • vuex在页面刷新后数据被清除

    用vuex来做全局的状态管理, 发现当刷新网页后,保存在vuex实例store里的数据会丢失 产生原因其实很简单,...

网友评论

      本文标题:vuex中store保存的数据,刷新页面会清空

      本文链接:https://www.haomeiwen.com/subject/ligekqtx.html