美文网首页前端开发那些事儿
vuex持久化vuex-persistedstate

vuex持久化vuex-persistedstate

作者: A_dfa4 | 来源:发表于2020-11-17 14:45 被阅读0次

vuex-persistedstate 一个对 localstorage / sessionStorage 操作的vue插件

vue-storage-watcher

安装

npm install --save vuex-persistedstate

配置使用

  • 在vuex初始化时候,作为组件引入。
import Vuex from "vuex";
import createPersistedState from "vuex-persistedstate";

const store = new Vuex.Store({
  // ...
  plugins: [createPersistedState()],
});
  • 我在nuxt中使用
// nuxt.config.js
plugins: [
    {src: "~/plugins/vuexPersistence.js", ssr: false}
]
// vuexPersistence.js
import createPersistedState from 'vuex-persistedstate'

export default function ({store}) {
  createPersistedState({
    key:'HUODONG',
    reducer: (vuexState) => {
      return {
        signIn: vuexState.signIn  // store中的signIn模块
      }
    },
  })(store)
}

// 页面取值
import { mapState } from 'vuex'

computed: {
   ...mapState({
      signIn: state => state.signIn
   })
}

自定义存储方式

  • vuex-persistedstate默认使用localStorage来固化数据,一些特殊情况要如何应对呢?(如:safari的无痕浏览模式)
//  需要使用sessionStorage的情况
plugins: [
    persistedState({ storage: window.sessionStorage })
]
//  使用cookie的情况
import persistedState from 'vuex-persistedstate'
import * as Cookies from 'js-cookie'

export default new Vuex.Store({
  // ...
  plugins: [
    persistedState({
      storage: {
        getItem: key => Cookies.get(key),
        setItem: (key, value) => Cookies.set(key, value, { expires: 7 }),
        removeItem: key => Cookies.remove(key)
      }
    })
  ]
})

vuex-persistedstate
js-cookie

相关文章

网友评论

    本文标题:vuex持久化vuex-persistedstate

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