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 编程笔记 无名函数
Jun 28 Javascript
html5 canvas js(数字时钟)实例代码
Dec 23 Javascript
yepnope.js使用详解及示例分享
Jun 23 Javascript
利用Angularjs中模块ui-route管理状态的方法
Dec 27 Javascript
JS中的数组转变成JSON格式字符串的方法
May 09 Javascript
React Native第三方平台分享的实例(Android,IOS双平台)
Aug 04 Javascript
通过示例彻底搞懂js闭包
Aug 10 Javascript
BootStrap给table表格的每一行添加一个按钮事件
Sep 07 Javascript
基于jQuery ztree实现表格风格的树状结构
Aug 31 jQuery
详解微信小程序中组件通讯
Oct 30 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
May 04 jQuery
webpack中如何加载静态文件的方法步骤
May 18 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
用缓存实现静态页面的测试
2006/12/06 PHP
php在程序中将网页生成word文档并提供下载的代码
2012/10/09 PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
2014/10/23 PHP
thinkphp下MySQL数据库读写分离代码剖析
2017/04/18 PHP
thinkphp中U方法按路由规则生成url的方法
2018/03/12 PHP
PHP session垃圾回收机制实例分析
2019/06/28 PHP
php使用yield对性能提升的测试实例分析
2019/09/19 PHP
浅谈PHP array_search 和 in_array 函数效率问题
2019/10/15 PHP
xml文档转换工具,附图表例子(hta)
2010/11/17 Javascript
目前流行的JavaScript库的介绍及对比
2013/09/29 Javascript
js动态移动滚动条至底部示例代码
2014/04/24 Javascript
jQuery实现字符串按指定长度加入特定内容的方法
2015/03/11 Javascript
jQuery使用post方法提交数据实例
2015/03/25 Javascript
Javascript的无new构建实例详解
2016/05/15 Javascript
浅谈JS中的bind方法与函数柯里化
2016/08/10 Javascript
详解Javascript中DOM的范围
2017/02/13 Javascript
Vue使用vux-ui自定义表单验证遇到的问题及解决方法
2018/05/10 Javascript
详解npm 配置项registry修改为淘宝镜像
2018/09/07 Javascript
Nodejs对postgresql基本操作的封装方法
2019/02/20 NodeJs
[35:34]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
2013/12/08 Python
python设置检查点简单实现代码
2014/07/01 Python
Python中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
2014/10/23 Python
python中的文件打开与关闭操作命令介绍
2018/04/26 Python
用Python写脚本,实现完全备份和增量备份的示例
2018/04/29 Python
css3进阶之less实现星空动画的示例代码
2019/09/10 HTML / CSS
意大利比基尼品牌:MISS BIKINI
2019/11/02 全球购物
大三在校生电子商务求职信
2013/10/29 职场文书
《诺贝尔》教学反思
2014/02/17 职场文书
品酒会策划方案
2014/05/26 职场文书
农村优秀教师事迹材料
2014/08/27 职场文书
甜品蛋糕店创业计划书
2014/09/21 职场文书
公司授权委托书范文
2014/09/21 职场文书
匿名信格式范文
2015/05/27 职场文书
放牛班的春天观后感
2015/06/01 职场文书
2015迎新晚会活动总结
2015/07/16 职场文书