vuex管理状态 刷新页面保持不被清空的解决方案


Posted in Javascript onNovember 11, 2019

mutation文件

import {
 RECEIVE_PUBLICHTIT
} from './mutation-types'
 
//保证刷新页面数据不消失*
function storeLocalStore (state) {
 window.localStorage.setItem("publicTit",JSON.stringify(state));
}
 
export default {
 [RECEIVE_PUBLICHTIT] (state,{title}){
  state.publicTit = title
  storeLocalStore(state)
 }
}

用到publicTit属性的组件

created(){
     localStorage.getItem("publicTit")&&
this.$store.replaceState(JSON.parse(localStorage.getItem("publicTit")))
   },

在created()生命周期中进行取值操作,这时需要判断第一次加载项目的时,localStorage没有publicTit的信息,所以先判断一下

实现思路 让vuex中publicTit的状态和localStorage中保持一致(从localStorage中取值)

优化版:

需要调用属性的组件

created(){
    //在页面加载时读取localStorage状态 复制对象是解决新vuex管理的状态中新添加的字段也可以存入localStorage中
    localStorage.getItem("publicTit") && this.$store.replaceState(Object.assign(this.$store.state,JSON.parse(localStorage.getItem("publicTit"))));
 
    //在页面刷新时将vuex里的信息保存到localStorage里,避免多次调用localStorage进行存储降低性能,beforeunload是在页面刷新之前调用
    window.addEventListener("beforeunload",()=>{
     localStorage.setItem("publicTit",JSON.stringify(this.$store.state))
    })
   }

以上这篇vuex管理状态 刷新页面保持不被清空的解决方案就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js直接编辑当前cookie的脚本
Sep 14 Javascript
JS在IE和FireFox之间常用函数的区别小结
Mar 12 Javascript
javascript对数组的常用操作代码 数组方法总汇
Jan 27 Javascript
如何让你的Lightbox支持滚轮缩放及Base64图片
Dec 04 Javascript
IE10中flexigrid无法显示数据的解决方法
Jul 26 Javascript
JavaScript代码实现左右上下自动晃动自动移动
Apr 08 Javascript
javascript类型系统——日期Date对象全面了解
Jul 13 Javascript
浅谈JS运算符&&和|| 及其优先级
Aug 10 Javascript
easyui tree带checkbox实现单选的简单实例
Nov 07 Javascript
JavaScript Dom 绑定事件操作实例详解
Oct 02 Javascript
vue等两个接口都返回结果再执行下一步的实例
Sep 08 Javascript
Vue路由 重定向和别名的区别说明
Sep 09 Javascript
vuex实现数据状态持久化
Nov 11 #Javascript
vue 更改连接后台的api示例
Nov 11 #Javascript
vue路由守卫,限制前端页面访问权限的例子
Nov 11 #Javascript
vue在路由中验证token是否存在的简单实现
Nov 11 #Javascript
vuex存储token示例
Nov 11 #Javascript
Vuex实现数据增加和删除功能
Nov 11 #Javascript
VUE:vuex 用户登录信息的数据写入与获取方式
Nov 11 #Javascript
You might like
初品cakephp 入门基础
2012/02/16 PHP
php中引用符号(&)的使用详解
2013/11/13 PHP
ThinkPHP之getField详解
2014/06/20 PHP
C# WinForm中实现快捷键自定义设置实例
2015/01/23 PHP
CodeIgniter控制器之业务逻辑实例分析
2016/01/20 PHP
php实现博客,论坛图片防盗链的方法
2016/10/15 PHP
php 类中的常量、静态属性、非静态属性的区别
2017/04/09 PHP
JavaScript 设计模式学习 Factory
2009/07/29 Javascript
通过Jquery遍历Json的两种数据结构的实现代码
2011/01/19 Javascript
jquery序列化表单以及回调函数的使用示例
2014/07/02 Javascript
JavaScript中伪协议 javascript:使用探讨
2014/07/18 Javascript
jQuery中 delegate使用的问题
2015/07/03 Javascript
jQuery解决input超多的表单提交
2015/08/10 Javascript
Kindeditor在线文本编辑器如何过滤HTML
2016/04/14 Javascript
JS中artdialog弹出框控件之提交表单思路详解
2016/04/18 Javascript
微信小程序 弹幕功能简单实例
2017/02/14 Javascript
Vue开发中整合axios的文件整理
2017/04/29 Javascript
ES6学习教程之对象字面量详解
2017/10/09 Javascript
微信小程序实现页面浮动导航
2019/01/28 Javascript
基于vue实现滚动条滚动到指定位置对应位置数字进行tween特效
2019/04/18 Javascript
Vue 2.0 侦听器 watch属性代码详解
2019/06/19 Javascript
vue学习笔记之给组件绑定原生事件操作示例
2020/02/27 Javascript
Vue中的nextTick作用和几个简单的使用场景
2021/01/25 Vue.js
[51:50]完美世界DOTA2联赛 Magma vs GXR 第一场 11.07
2020/11/10 DOTA
在Linux下使用Python的matplotlib绘制数据图的教程
2015/06/11 Python
tensorflow构建BP神经网络的方法
2018/03/12 Python
对python中数据集划分函数StratifiedShuffleSplit的使用详解
2018/12/11 Python
python判断一个数是否能被另一个整数整除的实例
2018/12/12 Python
Django的ListView超详细用法(含分页paginate)
2020/05/21 Python
keras读取训练好的模型参数并把参数赋值给其它模型详解
2020/06/15 Python
Python中Selenium库使用教程详解
2020/07/23 Python
万宝龙英国官网:Montblanc手表、书写工具、皮革和珠宝
2018/10/16 全球购物
美国帽子俱乐部商店:Hat Club
2019/07/05 全球购物
Linux管理员面试经常问道的相关命令
2014/12/12 面试题
物理学专业自荐信
2014/06/11 职场文书
初一数学教学反思
2016/02/17 职场文书