详解vuex持久化插件解决浏览器刷新数据消失问题


Posted in Javascript onApril 15, 2019

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

插件地址: 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 CodeSandbox.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 全角转换实现代码
Jul 17 Javascript
基于JQuery的asp.net树实现代码
Nov 30 Javascript
js函数setTimeout延迟执行的简单介绍
Jul 17 Javascript
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
Oct 01 Javascript
jQuery实现自动切换播放的经典滑动门效果
Sep 12 Javascript
js随机生成一个验证码
Jun 01 Javascript
AngularJS实现单一页面内设置跳转路由的方法
Jun 28 Javascript
jquery ajax异步提交表单数据的方法
Oct 27 jQuery
Vue组件之自定义事件的功能图解
Feb 01 Javascript
Vue 框架之键盘事件、健值修饰符、双向数据绑定
Nov 14 Javascript
vue实现微信分享链接添加动态参数的方法
Apr 29 Javascript
angular共享依赖的解决方案分享
Oct 15 Javascript
vue-cli项目使用mock数据的方法(借助express)
Apr 15 #Javascript
说说Vuex的getters属性的具体用法
Apr 15 #Javascript
vue 中Virtual Dom被创建的方法
Apr 15 #Javascript
详解jQuery中的getAll()和cleanData()
Apr 15 #jQuery
详解javascript对数组和json数组的操作
Apr 15 #Javascript
详解vue中router-link标签所必备了解的属性
Apr 15 #Javascript
详解小程序设置缓存并且不覆盖原有数据
Apr 15 #Javascript
You might like
php基础知识:类与对象(1)
2006/12/13 PHP
thinkphp的c方法使用示例
2014/02/24 PHP
php时间计算相关问题小结
2016/05/09 PHP
解决 firefox 不支持 document.all的方法
2007/03/12 Javascript
jQuery 在光标定位的地方插入文字的插件
2012/05/10 Javascript
Node.js中使用mongoskin操作mongoDB实例
2014/09/28 Javascript
原生javascript实现匀速运动动画效果
2016/02/26 Javascript
用v-html解决Vue.js渲染中html标签不被解析的问题
2016/12/14 Javascript
javascript内存分配原理实例分析
2017/04/10 Javascript
jQuery选择器中的特殊符号处理方法
2017/09/08 jQuery
获取本机IP地址的实例(JavaScript / Node.js)
2017/11/24 Javascript
vue2.0 如何把子组件的数据传给父组件(推荐)
2018/01/15 Javascript
iview通过Dropdown(下拉菜单)实现的右键菜单
2018/10/26 Javascript
浅析Proxy可以优化vue的数据监听机制问题及实现思路
2018/11/29 Javascript
jquery实现垂直手风琴菜单
2020/03/04 jQuery
vue 实现element-ui中的加载中状态
2020/11/11 Javascript
[00:52]黑暗之门更新 新英雄孽主驾临DOTA2
2016/08/24 DOTA
pydev使用wxpython找不到路径的解决方法
2013/02/10 Python
基于Python3 逗号代码 和 字符图网格(详谈)
2017/06/22 Python
Python跨文件全局变量的实现方法示例
2017/12/10 Python
python在文本开头插入一行的实例
2018/05/02 Python
详解python分布式进程
2018/10/08 Python
解决安装python库时windows error5 报错的问题
2018/10/21 Python
Python数据类型之列表和元组的方法实例详解
2019/07/08 Python
Django时区详解
2019/07/24 Python
详解Python3 pandas.merge用法
2019/09/05 Python
大学系主任推荐信范文
2013/12/24 职场文书
采购员的工作职责
2013/12/26 职场文书
列车长先进事迹材料
2014/01/25 职场文书
《画风》教学反思
2014/04/16 职场文书
推荐信格式范文
2014/05/09 职场文书
工厂仓管员岗位职责范本
2014/07/17 职场文书
2015年教师节慰问信
2015/03/23 职场文书
2015年妇联工作总结范文
2015/04/22 职场文书
会议室管理制度范本
2015/08/06 职场文书
2016中秋晚会开幕词
2016/03/03 职场文书