博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vuex持久化插件-解决浏览器刷新数据消失问题
阅读量:6879 次
发布时间:2019-06-27

本文共 1994 字,大约阅读时间需要 6 分钟。

众所周知,vuex的一个全局状态管理的插件,但是在浏览器刷新的时候,内存中的state会释放,通常的解决办法就是用本地存储的方式保存数据,然后再vuex初始化的时候再赋值给state,手动存再手动取会觉得很麻烦,这个时候就可以使用vuex的插件vuex-solidification

插件地址: , 欢迎star

插件原理

vuex有一个hook方法:store.subscribe((mutation, state) => {}) 每次在mutation方法执行完之后都会调用这个回调函数,返回执行完毕之后的state

使用方法

安装

npm install --save vuex-solidification复制代码

引入及配置

import Vue from 'vue'import Vuex from 'vuex'import count from './count/index.js';import createPersistedState from 'vuex-solidification';Vue.use(Vuex);const store = new Vuex.Store({    state: {        count: {            value: 0,            num: 1        },        pos: 1    }    plugins: [ // 默认存储所有state数据到localstorage        createPersistedState()    ]});复制代码

插件参数说明

createPersistedState({options}) : Function

options里面可以有:

key: String 存储到localStorage, sessionStorage 中对象的key,默认为vuex

local: Object 和 session: Object, 分别代表localStorage的配置和sessionStorage的配置

local 和 session 里面可以有: include: Array 和 exclude: Array

配置例子

createPersistedState({    local: {        include: ['count.value']     }})/*     hook钩子触发之后,localstorage里面存储的对象为:    {        count: {            value: 0,        }    }*/createPersistedState({    local: {        exclude: ['count.value']     }})/*     hook钩子触发之后,localstorage里面存储的对象为:    {        count: {            num: 1        },        pos: 1    }*/createPersistedState({    session: {        include: ['count.value']     }})/*     hook钩子触发之后,sessionstorage里面存储的对象为:    {        count: {            value: 0,        }    }*/createPersistedState({    session: {        exclude: ['count.value']     }})/*     hook钩子触发之后,sessionstorage里面存储的对象为:    {        count: {            num: 1        },        pos: 1    }*/createPersistedState({    session: {        include: ['count']     },    local: {        include: ['pos']    }})/*     hook钩子触发之后,    sessionstorage里面存储的对象为:    {        count: {            value: 0,            num: 1        },    }    sessionstorage里面存储的对象为:    {        pos: 0    }*/复制代码

代码例子

Check out the example on .

写在最后

欢迎交流,提issue和pr,

转载地址:http://qybbl.baihongyu.com/

你可能感兴趣的文章
从0开始搭建微信小程序(前后端)的全过程
查看>>
小程序如何生成海报分享朋友圈
查看>>
检测后台错误
查看>>
微信小程序自定义组件
查看>>
我的友情链接
查看>>
zookeeper报错问题
查看>>
Linux新建文件和目录
查看>>
ACM图灵奖
查看>>
windows 2008 r2 远程桌面一个用户多登录配置
查看>>
我的友情链接
查看>>
在Android Library的Module中按渠道依赖
查看>>
对javascript匿名函数的理解(透彻版)
查看>>
使用virtualbox安装centos6的内置无线网卡桥接设置
查看>>
java调用http接口(HttpURLConnection的使用)
查看>>
java代码内,获得jsp产生的html
查看>>
jquery.validate remote 和 自定义验证方法
查看>>
hibernate使用sql查询
查看>>
二叉树(2)——遍历的非递归实现
查看>>
OS X 键盘快捷键
查看>>
linux下vi命令大全
查看>>