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创建命名空间(namespace)的最简实现
Dec 11 Javascript
用Javascript 和 CSS 实现脚注(Footnote)效果
Sep 09 Javascript
js表格分页实现代码
Sep 18 Javascript
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
Nov 14 Javascript
caller和callee的区别介绍及演示结果
Mar 10 Javascript
JSCode all of Brower 全局屏蔽网页右键功能 具体实现
Jun 05 Javascript
JavaScript编程的10个实用小技巧
Apr 18 Javascript
jQuery中:image选择器用法实例
Jan 03 Javascript
Bootstrap每天必学之表单
Nov 23 Javascript
基于js中style.width与offsetWidth的区别(详解)
Nov 12 Javascript
Vue常用指令详解分析
Aug 19 Javascript
在Vue项目中,防止页面被缩放和放大示例
Oct 28 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
PHPMailer 中文使用说明小结
2010/01/22 PHP
PHP 反射(Reflection)使用实例
2015/05/12 PHP
PHP函数nl2br()与自定义函数nl2p()换行用法分析
2016/04/02 PHP
php识别翻转iphone拍摄的颠倒图片
2018/05/17 PHP
原生Js与jquery的多组处理, 仅展开一个区块的折叠效果
2011/01/09 Javascript
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
2012/12/09 Javascript
从零学jquery之如何使用回调函数
2014/05/16 Javascript
jQuery实现网页抖动的菜单抖动效果
2015/08/07 Javascript
javascript省市级联功能实现方法实例详解
2015/10/20 Javascript
js 显示日期时间的实例(时间过一秒加1)
2017/10/25 Javascript
JS加密插件CryptoJS实现AES加密操作示例
2018/08/16 Javascript
JS返回页面时自动回滚到历史浏览位置
2018/09/26 Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
2020/10/20 Javascript
Vue + ts实现轮播插件的示例
2020/11/10 Javascript
Python实例分享:快速查找出被挂马的文件
2014/06/08 Python
编写Python脚本使得web页面上的代码高亮显示
2015/04/24 Python
用Python实现服务器中只重载被修改的进程的方法
2015/04/30 Python
python遍历目录的方法小结
2016/04/28 Python
Python对List中的元素排序的方法
2018/04/01 Python
flask中过滤器的使用详解
2018/08/01 Python
详解python多线程之间的同步(一)
2019/04/03 Python
django商品分类及商品数据建模实例详解
2020/01/03 Python
Python进程Multiprocessing模块原理解析
2020/02/28 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
2020/10/15 Python
python 带时区的日期格式化操作
2020/10/23 Python
python 如何对logging日志封装
2020/12/02 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
2021/01/27 Python
Mytheresa美国官网:德国知名的女性奢侈品电商
2017/05/27 全球购物
德国拖鞋网站:German Slippers
2019/11/08 全球购物
《风娃娃》教学反思
2014/04/19 职场文书
销售提升方案
2014/06/07 职场文书
护士找工作求职信
2014/07/02 职场文书
创优争先心得体会
2014/09/11 职场文书
2015年幼儿园卫生保健工作总结
2015/05/12 职场文书
超市店长竞聘书
2015/09/15 职场文书
离婚协议书范本(2016最新版)
2016/03/18 职场文书