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 Event对象的5种坐标
Sep 12 Javascript
javascript中的注释使用与注意事项小结
Sep 20 Javascript
JS实现的生成随机数的4个函数分享
Feb 11 Javascript
轻松5句话解决JavaScript的作用域
Jul 15 Javascript
js获取上传文件的绝对路径实现方法
Aug 02 Javascript
原生js实现图片放大缩小计时器效果
Jan 20 Javascript
使用vuex缓存数据并优化自己的vuex-cache
May 30 Javascript
Vue-cli3项目配置Vue.config.js实战记录
Jul 29 Javascript
微信小程序自定义select下拉选项框组件的实现代码
Aug 28 Javascript
iview实现select tree树形下拉框的示例代码
Dec 21 Javascript
Vue.set 全局操作简单示例
Sep 19 Javascript
vue+Element-ui实现分页效果
Nov 15 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
了解Joomla 这款来自国外的php网站管理系统
2010/03/11 PHP
php实现无限级分类(递归方法)
2015/08/06 PHP
PHP生成(支持多模板)二维码海报代码
2018/04/30 PHP
Mac下关于PHP环境和扩展的安装详解
2019/10/17 PHP
PHP设计模式(八)装饰器模式Decorator实例详解【结构型】
2020/05/02 PHP
jQuery 1.0.4 - New Wave Javascript(js源文件)
2007/01/15 Javascript
风吟的小型JavaScirpt库 (FY.JS).
2010/03/09 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之二
2011/12/31 Javascript
JQuery解析HTML、JSON和XML实例详解
2014/03/29 Javascript
实用框架(iframe)操作代码
2014/10/23 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
Javascript中的几种继承方式对比分析
2016/03/22 Javascript
js 作用域和变量详解
2017/02/16 Javascript
对layui初始化列表的CheckBox属性详解
2019/09/13 Javascript
jquery实现的放大镜效果示例
2020/02/24 jQuery
Python中统计函数运行耗时的方法
2015/05/05 Python
浅谈python字符串方法的简单使用
2016/07/18 Python
django用户登录和注销的实现方法
2018/07/16 Python
django框架之cookie/session的使用示例(小结)
2018/10/15 Python
Python叠加两幅栅格图像的实现方法
2019/07/05 Python
Python qqbot 实现qq机器人的示例代码
2019/07/11 Python
解决python中的幂函数、指数函数问题
2019/11/25 Python
vscode写python时的代码错误提醒和自动格式化的方法
2020/05/07 Python
opencv之颜色过滤只留下图片中的红色区域操作
2020/06/05 Python
Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)
2020/08/07 Python
美国顶级水上运动专业店:Marine Products
2018/04/15 全球购物
TCP/IP模型的分界线
2012/12/01 面试题
银行实习生自我鉴定范文
2013/09/19 职场文书
大学班级干部的自我评价分享
2014/02/10 职场文书
《母亲的恩情》教学反思
2014/02/13 职场文书
租赁协议书范本
2014/04/22 职场文书
公司周年庆典标语
2014/10/07 职场文书
2015年加油站工作总结
2015/05/13 职场文书
初中数学课堂教学反思
2016/02/17 职场文书
《比尾巴》教学反思
2016/02/24 职场文书
Spring Bean的实例化之属性注入源码剖析过程
2021/06/13 Java/Android