Vuex 持久化

目的:让在vuex中管理的状态数据同时存储在本地。可免去自己存储的环节。

  • 在开发的过程中,像用户信息(名字,头像,token)需要vuex中存储且需要本地存储。
  • 例如,购物车如果需要未登录状态下也支持,如果管理在vuex中页需要存储在本地。
  • 我们需要category模块存储分类信息,但是分类信息不需要持久化。
    首先:我们需要安装一个vuex的插件vuex-persistedstate来支持vuex的状态持久化。

npm i vuex-persistedstate

然后:使用vuex-persistedstate插件来进行持久化

import { createStore } from 'vuex'
// 使用vuex-persistedstate插件来进行持久化
import createPersistedstate from 'vuex-persistedstate'

import user from './modules/user'
import cart from './modules/cart'
import category from './modules/category'
export default createStore({
  modules: {
    user,
    category,
    cart,
  },
  //配置插件
  plugins: [
    createPersistedstate({
      //本地存储名字
      key: 'erabbit-client-pc-store',
      //指定需要存储的模块
      paths: ['user', 'cart'],
    }),
  ],
})

注意:

===> 默认是存储在localStorage中

===> key是存储数据的键名

===> paths是存储state中的那些数据,如果是模块下具体的数据需要加上模块名称,如user.token

===> 修改state后触发才可以看到本地存储数据的的变化。

测试: user模块定义一个mutation在main.js去调用下,观察浏览器application的localStorage下数据。

src/App.js

上一篇:Vuex是什么 什么时候使用(不明白可以交流)


下一篇:【Vuex的使用】