vue3.0之vuex持久化

在开发过程中,有用户信息之类的需要在vuex中存储且需要本地存储,这时候就需要vuex的持久化,也就是要安装vuex-persistedstate插件来支持vuex的状态持久化

npm i vuex-persistedstate

首先把vuex的目录改造为index.js加modules的形式 

index.js

import { createStore } from 'vuex'
import createPersistedState from 'vuex-persistedstate'
// vuex-persistedstate默认使用localstorage存储,可以在浏览器的Application里面找到存储的信息

// modules里面声明的三个模块
import cart from './modules/cart'
import user from './modules/user'
import category from './modules/category'


export default createStore({
  modules: {
    cart,
    user,
    category
  },
  // 配置安装的vuex-persistedstate插件
  plugins: [
    createPersistedState({
      // 存储名字
      key: 'ribbit-client',
      // 指定模块
      paths: ['user', 'cart']
    })
  ]
})

user.js

// 用户模块

export default {
  namespaced: true,
  state () {
    return {
      // 用户信息
      profile: {
        id: '',
        avatar: '',
        nickname: '',
        mobile: '',
        token: ''
      }
    }
  },
  mutations: {
    // 修改用户信息
    setUser (state, payload) {
      state.profile = payload;
    }
  }
}

cart.js

// 购物车模块

export default {
  namespaced: true,
  state () {
    return {
      // 商品列表
      list: []
    }
  }
}

category.js

// 分类模块

export default {
  namespaced: true,
  state () {
    return {
      list: []
    }
  }
}

App.js

<template>
  <div class="App">
    App: {{$store.state.user.profile.account}}
    <button @click="$store.commit('user/setUser', {account: 'pasco'})">点我设置用户信息</button>
  </div>
</template>
<script>
export default {
  name: 'App',
}
</script>

<style lang="less">
</style>

最简单的一个demo

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值