美文网首页vuevueVue
vuex持久化 vuex-persistedstate

vuex持久化 vuex-persistedstate

作者: FE小帅 | 来源:发表于2018-09-20 15:50 被阅读1572次

    vuex是在中大型项目中必不可少的状态管理组件,刷新会重新更新状态,但是有时候我们并不希望如此。例如全局相关的,如登录状态、token、以及一些不常更新的状态等,我们更希望能够固化到本地,减少无用的接口访问,以及更佳的用户体验。

    安装起步

    npm i -S vuex-persistedstate

    目前的环境版本:

    "vue": "2.2.4",
    "vuex": "^2.5.0",
    "vuex-persistedstate": "^2.5.4"
    

    vuex已经升级到了3.0.1,看了release note没有发现太过分的升级,预计不会出现不兼容的情况,有感兴趣的小伙伴可以升级体验一下。

    配置使用

    在vuex初始化时候,作为组件引入。

    import persistedState from 'vuex-persistedstate'
    export default new Vuex.Store({
        // ...
        plugins: [persistedState()]
    })
    

    自定义存储方式

    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持久化 vuex-persistedstate

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