美文网首页
vuex的store在刷新后数据被清空

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

作者: 伟_4649 | 来源:发表于2020-04-05 19:04 被阅读0次

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

实现方法一:在app.vue中添加如下代码:
// 在页面加载时读取localStorage里的状态信息
if (localStorage.getItem('store')) {
  this.$store.replaceState(Object.assign({}, this.$store.state, JSON.parse(localStorage.getItem('store'))));
}
// 在页面刷新时将vuex里的信息保存到localStorage里
window.addEventListener('pagehide', () => {
  localStorage.setItem('store', JSON.stringify(this.$store.state));
});
// 在登录和注销界面增加
//localStorage.removeItem('store');

使用该方法,我再权限控制的文件permission.js中的路由判断中还是获取数据为空

router.beforeEach(async(to, from, next) => {
     const hasGetUserInfo = store.getters.name  //此时获取的name在刷新后为空
     if (hasGetUserInfo) {
       next()
     } else {
       next(`/login?redirect=${to.path}`)
       NProgress.done()
     }
}

于是,修改了如下方法二,成功实现:

实现方法二:使用vuex-persist组件
  • 安装:
npm install --save vuex-persist
or
yarn add vuex-persist
  • 在store/index.js中引入:
import VuexPersistence from 'vuex-persist'

//使用vuex-persist插件解决页面刷新后store为空的问题
const vuexLocal = new VuexPersistence({
  storage: window.localStorage
})

//在new Vuex.Store中引入进插件
const store = new Vuex.Store({
  modules: {
    app,
    settings,
    user
  },
  getters,
  plugins: [vuexLocal.plugin]  //添加引入插件代码
})

vuex 页面刷新时store数据丢失问题
Vuex持久化存储之vuex-persist

相关文章

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

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

  • 解决刷新页面vuex store中数据丢失的问题

    前言: 在使用vuex store做数据状态储存的时候,页面刷新之后,store数据丢失,导致用户状态、token...

  • vuex

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

  • vuex 数据持久化插件

    数据持久化: 刷新页面,vuex里面数据丢失、清空。有时候我们需要把一些数据固话到本地,即使刷新也不能清空,例如:...

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

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

  • 面试题

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

  • 解决vue刷新页面以后丢失store的数据

    前言 最近遇到个问题,vue中vuex中的store数据,会在页面刷新后初始化,为了解决这一问题决定将store里...

  • vuex持久化+模块化实战用法(进阶篇)

    上一篇:vuex刷新数据消失不见解决方案 Vuex模块化 模块化后的 store 大概长这样,如果画的不对,欢迎留...

  • 解决vuex刷新页面数据丢失

    1、vuex刷新页面数据丢失 vue构建的项目中,vuex的状态存储是响应式的,当vue组件从store中读取状态...

  • Vuex强制刷新数据丢失解决方案

    Vuex强制刷新数据丢失解决方案 解决思路: 将store中的数据缓存到客户端存储中:cookie、local s...

网友评论

      本文标题:vuex的store在刷新后数据被清空

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