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下通过的XMLHttpRequest发送请求的代码
Jun 28 Javascript
JS获取屏幕高度的简单实现代码
May 24 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
Jun 01 Javascript
JavaScript中的this引用(推荐)
Aug 05 Javascript
KnockoutJS 3.X API 第四章之数据控制流if绑定和ifnot绑定
Oct 10 Javascript
微信小程序使用checkbox显示多项选择框功能【附源码下载】
Dec 11 Javascript
VUE Error: getaddrinfo ENOTFOUND localhost
May 03 Javascript
如何解决vue2.0下IE浏览器白屏问题
Sep 13 Javascript
在angularJs中进行数据遍历的2种方法
Oct 08 Javascript
Nuxt.js开启SSR渲染的教程详解
Nov 30 Javascript
原生JS实现九宫格抽奖
Sep 13 Javascript
Js数组扁平化实现方法代码总汇
Nov 11 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
自动把纯文本转换成Web页面的php代码
2009/08/27 PHP
PHP多个版本的分析解释
2011/07/21 PHP
PHP cdata 处理(详细介绍)
2013/07/05 PHP
PHP读书笔记整理_结构语句详解
2016/07/01 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
使用PHPExcel导出Excel表
2018/09/08 PHP
php进程(线程)通信基础之System V共享内存简单实例分析
2019/11/09 PHP
过虑特殊字符输入的js代码
2010/08/05 Javascript
javascript 事件处理程序介绍
2012/06/27 Javascript
extjs表格文本启用选择复制功能具体实现
2013/10/11 Javascript
vue 将页面公用的头部组件化的方法
2017/12/18 Javascript
Vue.js 利用v-for中的index值实现隔行变色
2018/08/01 Javascript
vue中的适配px2rem示例代码
2018/11/19 Javascript
JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转
2019/11/25 Javascript
vue(2.x,3.0)配置跨域代理
2019/11/27 Javascript
Jquery滑动门/tab切换实现方法完整示例
2020/06/05 jQuery
vue实现顶部菜单栏
2020/11/08 Javascript
pygame学习笔记(1):矩形、圆型画图实例
2015/04/15 Python
火车票抢票python代码公开揭秘!
2018/03/08 Python
解决pandas使用read_csv()读取文件遇到的问题
2018/06/15 Python
Python 循环终止语句的三种方法小结
2019/06/24 Python
Django ORM 常用字段与不常用字段汇总
2019/08/09 Python
使用Python爬虫库requests发送表单数据和JSON数据
2020/01/25 Python
Python多进程编程multiprocessing代码实例
2020/03/12 Python
python使用建议与技巧分享(一)
2020/08/17 Python
Python 通过正则表达式快速获取电影的下载地址
2020/08/17 Python
python之pygame模块实现飞机大战完整代码
2020/11/29 Python
String和StringBuffer的区别
2015/08/13 面试题
大学四年个人的自我评价
2014/02/26 职场文书
交通事故私了协议书
2014/04/16 职场文书
幼儿教师师德演讲稿
2014/05/06 职场文书
个人四风问题整改措施思想汇报
2014/10/04 职场文书
生死牛玉儒观后感
2015/06/11 职场文书
校园之声广播稿
2015/08/18 职场文书
详解jQuery的核心函数和事件处理
2022/02/18 jQuery
Nginx实现负载均衡的项目实践
2022/03/18 Servers