美文网首页
关于vuex的持久化

关于vuex的持久化

作者: 打杂coder | 来源:发表于2018-01-25 15:00 被阅读1415次

接触Vuex也有一段时间,之前也遇到过刷新之后Vuex丢失的问题。
因为Vuex也是js,存在于内存中,刷新浏览器的话会导致js重新加载,Vuex的Store全部重置, 所以为了防止这类情况的发生的话,一般来说我们会用localStorage对vuex进行一个存储,防止Vuex丢失的情况。
但是这样的话,我们就会面临一个问题,就是每次进行Store的状态变化时,都要手动存储下,很麻烦 所以不妨试试通过编写Vuex的插件来完成这个Vuex状态持久化的功能

首先


  • 我们来看下Vuex的插件的写法
const myPlugin = store => {
  // 当 store 初始化后调用
  store.subscribe((mutation, state) => {
    // 每次 mutation 之后调用
    // mutation 的格式为 { type, payload }
  })
}

其实挺简单的,就两个

  • 第一个就是在Store初始化的时候可以进行函数调用
  • 第二个就是在mutation之后可以进行函数调用

借用这两个,其实就可以实现一个简单的vuex状态持久化功能了,下面贴一下代码

const handleStore = store => {
  if (localStorage.store) store.replaceState(JSON.parse(localStorage.store))  // 初始化store
  store.subscribe((mutation, state) => {
      localStorage.setItem("store",  JSON.stringify(state))
  })
}


// 然后在new Vuex的时候进行调用

const store = new Vuex.Store({
  state,
  mutations,
  plugins: [handleStore]
})


当然这个是最简单的版本,还可以加一些白名单,时间戳之类的,这样的话更加颗粒化,主要是提供一个思路

相关文章

  • 关于vuex持久化

    1.vuex插件 vuex-persistedstate 插件在每次mutation的时候将数据保存,存到loca...

  • 关于vuex的持久化

    接触Vuex也有一段时间,之前也遇到过刷新之后Vuex丢失的问题。因为Vuex也是js,存在于内存中,刷新浏览器的...

  • vuex-along

    vuex-along - 持久化存储 state 的 vuex 扩展 安装 使用 配置

  • vuex配置

    vuex配置 目录 vuex的五个核心 配置vuex vuex持久化 一、vuex五个核心概念 State 定义状...

  • 前端废物的自救之路(3)使用Cookie完成Nuxt.js中Vu

    前端废物的自救之路(3)使用Cookie完成Nuxt.js中Vuex的持久化 为什么需要Vuex持久化 在开发的过...

  • Vuex数据状态持久化:vuex-persistedstate、

    vuex-persistedstate 安装 使用 需要持久化的数据 vuex-persist 它就是为 Vuex...

  • 配置 vuex 和 vuex 本地持久化

    配置 vuex 和 vuex 本地持久化 目录 vuex是什么 vuex 的五个核心概念State 定义状态(变量...

  • vuex

    配置 vuex 和 vuex 本地持久化 目录 vuex是什么 vuex 的五个核心概念State 定义状态(变量...

  • vuex的使用

    配置 vuex 和 vuex 本地持久化 目录 vuex是什么 vuex 的五个核心概念State 定义状态(变量...

  • vuex 持久化

    利用vuex-persistedstate插件 插件的原理其实也是结合了存储方式,只是统一的配置就不需要手动每次都...

网友评论

      本文标题:关于vuex的持久化

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