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在事件监听方面的兼容性小结
Apr 07 Javascript
jquery鼠标滑过提示title具体实现代码
Aug 06 Javascript
不同Jquery版本引发的问题解决
Oct 14 Javascript
遮罩层点击按钮弹出并且具有拖动和关闭效果(两种方法)
Aug 20 Javascript
jquery选择器简述
Aug 31 Javascript
ES6记录异步函数的执行时间详解
Aug 31 Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
Sep 09 Javascript
yii form 表单提交之前JS在提交按钮的验证方法
Mar 15 Javascript
微信小程序和百度的语音识别接口详解
May 06 Javascript
微信小程序页面调用自定义组件内的事件详解
Sep 12 Javascript
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
Dec 10 Javascript
vue中h5端打开app(判断是安卓还是苹果)
Feb 26 Vue.js
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中防止恶意刷新页面的代码小结
2012/10/31 PHP
PHP中实现生成静态文件的方法缓解服务器压力
2014/01/07 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
2015/04/15 PHP
PHP 传输会话curl函数的实例详解
2017/09/12 PHP
Gambit vs CL BO3 第三场 2.13
2021/03/10 DOTA
Ajax异步提交表单数据的说明及方法实例
2013/06/22 Javascript
三种检测iPhone/iPad设备方向的方法
2014/04/23 Javascript
jquery+php实现搜索框自动提示
2014/11/28 Javascript
jQuery中prop()方法用法实例
2015/01/05 Javascript
js基于面向对象实现网页TAB选项卡菜单效果代码
2015/09/09 Javascript
JS+CSS实现简易的滑动门效果代码
2015/09/24 Javascript
简单介绍JavaScript数据类型之隐式类型转换
2015/12/28 Javascript
JS获取元素多层嵌套思路详解
2016/05/16 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
2016/08/05 Javascript
微信小程序 条件渲染详解
2016/10/09 Javascript
JS实现复制内容到剪贴板功能
2017/02/05 Javascript
简单学习5种处理Vue.js异常的方法
2019/06/17 Javascript
json 带斜杠时如何解析的实现
2019/08/12 Javascript
mpvue网易云短信接口实现小程序短信登录的示例代码
2020/04/03 Javascript
Vue组件通信$attrs、$listeners实现原理解析
2020/09/03 Javascript
[02:10]2018DOTA2亚洲邀请赛赛前采访-Liquid
2018/04/03 DOTA
跟老齐学Python之dict()的操作方法
2014/09/24 Python
Python入门之modf()方法的使用
2015/05/15 Python
50行Python代码实现人脸检测功能
2018/01/23 Python
浅谈Pycharm中的Python Console与Terminal
2019/01/17 Python
django2.0扩展用户字段示例
2019/02/13 Python
对Python _取log的几种方式小结
2019/07/25 Python
PyTorch中的Variable变量详解
2020/01/07 Python
django restframework serializer 增加自定义字段操作
2020/07/15 Python
Python 程序员必须掌握的日志记录
2020/08/17 Python
php优化查询foreach代码实例讲解
2021/03/24 PHP
数控专业推荐信范文
2013/12/02 职场文书
医学院毕业生自荐信范文
2014/03/06 职场文书
小学生推普周国旗下讲话稿
2014/09/21 职场文书
先进员工事迹材料
2014/12/20 职场文书
2015年社区流动人口工作总结
2015/05/12 职场文书