当前位置:   article > 正文

Nuxt.js做Vuex数据持久化_nuxt 使用vuex如何数据持久化

nuxt 使用vuex如何数据持久化

一.  数据丢失的原因

  • vuex存储的数据只是在页面中,相当于全局变量,页面刷新的时候vuex里的数据会重新初始化,导致数据丢失。
  • 因为vuex里的数据是保存在运行内存中的,当页面刷新时,页面会重新加载vue实例,vuex里面的数据就会被重新赋值。

二 . 解决方法 

这里将Vuex的数据存储到localStorage中,具体看下面代码

1. 在plugins.js文件中创建 store-cache.js

2. 在nuxt.config.js 中代码如下

  1. plugins: [
  2. { src: '~/plugins/store-cache', ssr: false },
  3. ],

 store-cache.js 文件代码如下

  1. export default function(ctx) {
  2. // 离开页面 刷新前 将store中的数据存到localStorage
  3. window.addEventListener('beforeunload', () => {
  4. localStorage.setItem("storeCache", JSON.stringify(ctx.store.state))
  5. });
  6. // 获取localStorage中的store数据
  7. let storeCache = localStorage.getItem("storeCache")
  8. if (storeCache) {
  9. // 将localStorage中的store数据替换到store中
  10. ctx.store.replaceState(Object.assign({},ctx.store.state,JSON.parse(storeCache))
  11. )
  12. }
  13. }

这样就解决了Vuex刷新数据丢失的问题了,实现了数据持久化

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/971340
推荐阅读
相关标签
  

闽ICP备14008679号