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 相关文章推荐
JavaScript 解析读取XML文档 实例代码
Jul 07 Javascript
网页右键ie不支持event.preventDefault和event.returnValue (需要加window)
Feb 22 Javascript
jquery缓动swing liner控制动画过程不同时刻的速度
May 29 Javascript
JavaScript代码实现左右上下自动晃动自动移动
Apr 08 Javascript
BootStrap使用file-input插件上传图片的方法
Sep 05 Javascript
分享一个原生的JavaScript拖动方法
Sep 25 Javascript
JS实现简单的天数计算器完整实例
Apr 28 Javascript
vue学习之mintui picker选择器实现省市二级联动示例
Oct 12 Javascript
解决Vue使用mint-ui loadmore实现上拉加载与下拉刷新出现一个页面使用多个上拉加载后冲突问题
Nov 07 Javascript
利用Javascript开发一个二维周视图日历
Dec 14 Javascript
详解自定义ajax支持跨域组件封装
Feb 08 Javascript
对angular 实时更新模板视图的方法$apply详解
Oct 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
表单复选框向PHP传输数据的代码
2007/11/13 PHP
php中strstr、strrchr、substr、stristr四个函数的区别总结
2014/09/22 PHP
Yii 2.0如何使用页面缓存方法示例
2017/05/23 PHP
PHP一致性hash分布式算法封装类定义与用法示例
2018/08/04 PHP
Laravel Eloquent ORM 实现查询表中指定的字段
2019/10/17 PHP
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
jQuery学习基础知识小结
2010/11/25 Javascript
jQuery的图片滑块焦点图插件整理推荐
2014/12/07 Javascript
JQuery中节点遍历方法实例
2015/05/18 Javascript
Windows系统下Node.js的简单入门教程
2015/06/23 Javascript
IE6-IE9使用JSON、table.innerHTML所引发的问题
2015/12/22 Javascript
javascript中闭包(Closure)详解
2016/01/06 Javascript
基于jquery实现图片上传本地预览功能
2016/01/08 Javascript
微信小程序  http请求封装详解及实例代码
2017/02/15 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
2017/03/24 jQuery
javascrit中undefined和null的区别详解
2019/04/07 Javascript
JS实现的碰撞检测与周期移动完整示例
2019/09/02 Javascript
vue中input的v-model清空操作
2019/09/06 Javascript
js实现无缝轮播图特效
2020/05/09 Javascript
JavaScript中变量提升和函数提升的详解
2020/08/07 Javascript
Javascript类型判断相关例题及解析
2020/08/26 Javascript
[02:22:36]《加油!DOTA》总决赛
2014/09/19 DOTA
[55:11]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第一场 11.26
2020/11/30 DOTA
python 把数据 json格式输出的实例代码
2016/10/31 Python
Python实现并行抓取整站40万条房价数据(可更换抓取城市)
2016/12/14 Python
Python中最大最小赋值小技巧(分享)
2017/12/23 Python
浅谈pycharm出现卡顿的解决方法
2018/12/03 Python
Python嵌套式数据结构实例浅析
2019/03/05 Python
three.js模拟实现太阳系行星体系功能
2019/09/03 HTML / CSS
moosejaw旗下的户外商品促销网站:Mountain Steals
2017/02/27 全球购物
中班幼儿评语大全
2014/04/30 职场文书
2014年小学语文工作总结
2014/12/20 职场文书
2016公务员年度考核评语
2015/12/01 职场文书
《玩出了名堂》教学反思
2016/02/17 职场文书
python中subplot大小的设置步骤
2021/06/28 Python
i5-10400f处理相当于i7多少水平
2022/04/19 数码科技