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

vuex持久化vuex-persistedstate

作者: A_dfa4 | 来源:发表于2019-04-01 09:16 被阅读0次

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

vue-storage-watcher

### 安装

```js

npm install --save vuex-persistedstate

```

### 配置使用

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

```js

import Vuex from "vuex";

import createPersistedState from "vuex-persistedstate";

const store = new Vuex.Store({

  // ...

  plugins: [createPersistedState()],

});

```

* 我在nuxt中使用

```js

// 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的无痕浏览模式)

```js

//  需要使用sessionStorage的情况

plugins: [

    persistedState({ storage: window.sessionStorage })

]

```

```js

//  使用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](https://github.com/robinvdvleuten/vuex-persistedstate)

[js-cookie](https://github.com/js-cookie/js-cookie)

相关文章

网友评论

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

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