超详细保姆级基于Vue脚手架的VueX持久化存储教程

概念

VueX是一个状态管理库,统一地管理一个应用内所有组件的状态。


具体栗子类比

如果是原生js,需要保存全局状态需要保存在LocalStorage、SessionStorage、Cookie 中,但是每个组件的渲染都需要写一个对于以上三个存储方式的方法,如获取、存储、删除等方法,这么写太不方便了,VueX就能弥补这方面的不足。


封装类原生手写方式(如果不熟悉VueX数据流程的小火【伙】半【伴】先去官网看看):

这里也贴出来了流程图:

vuex

 

  1. 封装一个单独的类,这里以LocalStorage单独举例:
     

    export class LocalStorageUtils {
        static getLS(key) {
          return JSON.parse(window.localStorage.getItem(key))
        }
        static setLS(key, value){
          window.localStorage.setItem(key, JSON.stringify(value))
        }
        static removeLS(key) {
          window.localStorage.removeItem(key)
        }
    }

    接着在store目录下的VueX配置文件即index.js中引入刚才写好的文件目录:

    import {utils} from '@/utils/myUtils.js';

    接着在state状态里先去LocalStorage中获取看有没有数据,如果有就返回,如果没有再初始化值

    state:{
        version:utils.get("version")||'1.1.1'
    }

    最后在同步的操作里面执行set方法

    saveVersion:function(state,payload){
          state.version = payload;
          utils.set('version', state.version);
    }
    这样就大功告成了,还有其他方式,如在main.js的入口文件中执行这个get方法,直接获取到值赋值给相应的state、或者在全局位置执行一下window的beforeunload方法里面执行set方法。
  2. 插件式管理:vuex-persistedstate、vue-Along
    这里就不演示了,有兴趣的朋友可以去搜一下,大致的流程就是npm或者yarn安装包,然后导入到store的VueX配置文件中,最后再plugins: []中创建相应的方法。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值