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实现继承机制之构造函数+原型链混合方式的使用详解
May 07 Javascript
JS判断客户端是手机还是PC的2个代码
Apr 12 Javascript
原生javascript模仿win8等待提示圆圈进度条
Apr 24 Javascript
jQuery实现隔行背景色变色
Nov 24 Javascript
node.js中的fs.lchown方法使用说明
Dec 16 Javascript
jQuery垂直多级导航菜单代码分享
Aug 18 Javascript
基于JavaScript实现弹出框效果
Feb 19 Javascript
JavaScript中一些特殊的字符运算
Aug 17 Javascript
简单的网页广告特效实例
Aug 19 Javascript
vue+element实现批量删除功能的示例
Feb 28 Javascript
layer.close()关闭进度条和Iframe窗的方法
Aug 17 Javascript
bootstrap实现嵌套模态框的实例代码
Jan 10 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 empty函数 使用说明
2009/08/10 PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
2014/09/10 PHP
laravel 5.4 + vue + vux + element的环境搭配过程介绍
2018/04/26 PHP
javascript vvorld 在线加密破解方法
2008/11/13 Javascript
基于jQuery的输入框在光标位置插入内容, 并选中
2011/10/29 Javascript
一个JS的日期格式化算法示例
2013/07/31 Javascript
纯Javascript实现Windows 8 Metro风格实现
2013/10/15 Javascript
jquery超简单实现手风琴效果的方法
2015/06/05 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
2016/03/09 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
2016/06/27 Javascript
一个超简单的jQuery回调函数例子(分享)
2016/08/08 Javascript
关于Vue单页面骨架屏实践记录
2017/12/13 Javascript
探秘vue-rx 2.0(推荐)
2018/09/21 Javascript
Vue.directive 实现元素scroll逻辑复用
2019/11/29 Javascript
ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
2020/01/22 Javascript
jQuery三组基本动画与自定义动画操作实例总结
2020/05/09 jQuery
vue中利用three.js实现全景图的完整示例
2020/12/07 Vue.js
[09:33]2015国际邀请赛第四日TOP10
2015/08/08 DOTA
在Python中增加和插入元素的示例
2018/11/01 Python
Pycharm取消py脚本中SQL识别的方法
2018/11/29 Python
python numpy实现文件存取的示例代码
2019/05/26 Python
pandas进行时间数据的转换和计算时间差并提取年月日
2019/07/06 Python
python输出决策树图形的例子
2019/08/09 Python
详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库
2021/01/24 Python
蒙蒂塞罗商店:Monticello Shop
2018/11/25 全球购物
丽笙酒店官方网站:Radisson Hotels
2019/05/07 全球购物
建筑行业的大学生自我评价
2013/12/08 职场文书
亮化工程实施方案
2014/03/17 职场文书
禁毒宣传活动总结
2014/08/26 职场文书
社保代办委托书怎么写
2014/10/06 职场文书
简单租房协议书
2014/10/21 职场文书
先进工作者推荐材料
2014/12/23 职场文书
高三英语教学计划
2015/01/23 职场文书
技术员岗位职责
2015/02/04 职场文书
事业单位工作人员2015年度思想工作总结
2015/10/15 职场文书
健身房被搭讪?用python写了个小米计时器助人为乐
2021/06/08 Python