vue - vuex实现持久化存储

vuex持久化存储

  • vuex默认是刷新就会将厂库数据重置的,那么我们利用本地存储实现vuex本地持久化存储?
    代码如下:
  1. 封装本地存储的方法:
js 复制代码
// 个人信息持久化存储封装

// 约定一个 通用 的键名(本地存储键名)
const INFO_KEY = 'hm_shoppin_info'

// 1、获取信息
export const getInfo = () => {
  // 本地没有值,返回空
  const defaultObj = { token: '', userId: '' }
  const result = localStorage.getItem(INFO_KEY)
  // 本地有值,则取出来返回,没有值,则直接返回一个空对象
  return result ? JSON.parse(result) : defaultObj
}
// 2、设置信息
export const setInfo = (obj) => {
  // 设置信息存进去,需要转为字符串
  localStorage.setItem(INFO_KEY, JSON.stringify(obj))
}
// 3、移除信息
export const removeInfo = () => {
  localStorage.removeItem(INFO_KEY)
}
  1. 在vuex仓库中使用封装好的模块方法
js 复制代码
export default {
  // 开启命名空间
  namespaced: true,
  // 将state: {}  写成 函数的形式
  state () {
    return {
      // 个人信息权证
      userInfo: getInfo() // 从本地获取,持久化vuex中的数据
    }
  },
  mutations: {
    // 修改仓库中userInfo 数据
    setuserInfo (state, obj) {
      state.userInfo = obj
      // 上面将用户的权证信息,存到vux中,同时我们下面也调用封装好的存储模块函数,存到本地
      setInfo(obj) // utils/storage.js文件中封装好的
    }
  },

注意:在我们组件中,记得调用我们的mutations中的函数,传递我们用户需要存储的值,存到我们的vuex中的同时,利用我们封装好的模块方法存入一份到本地,从而实现vuex持久化存储。

相关推荐
幻云20104 分钟前
Python深度学习:从筑基与巅峰
前端·javascript·vue.js·人工智能·python
Light605 分钟前
庖丁解牛:深入JavaScript内存管理,从内存泄漏到AI赋能的性能优化
javascript·人工智能·性能优化·内存管理·垃圾回收·内存泄漏·v8引擎
_OP_CHEN9 分钟前
【前端开发之HTML】(三)HTML 常见标签(下):图文、链接与实战,解锁网页交互新姿势!
前端·html·交互·前端开发·网页开发·界面美化
3345543210 分钟前
vue表格遍历根据表头里的类型和每行的状态来判断
javascript·vue.js·chrome
岳哥i8 小时前
vue鼠标单机复制文本
javascript
jacGJ9 小时前
记录学习--文件读写
java·前端·学习
毕设源码-赖学姐9 小时前
【开题答辩全过程】以 基于WEB的实验室开放式管理系统的设计与实现为例,包含答辩的问题和答案
前端
幻云20109 小时前
Python深度学习:从筑基到登仙
前端·javascript·vue.js·人工智能·python
我即将远走丶或许也能高飞11 小时前
vuex 和 pinia 的学习使用
开发语言·前端·javascript
钟离墨笺11 小时前
Go语言--2go基础-->基本数据类型
开发语言·前端·后端·golang