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 相关文章推荐
script的async属性以非阻塞的模式加载脚本
Jan 15 Javascript
在jquery中combobox多选的不兼容问题总结
Dec 24 Javascript
javaScript 页面自动加载事件详解
Feb 10 Javascript
Jquery插件实现点击获取验证码后60秒内禁止重新获取
Mar 13 Javascript
JS实现双击编辑可修改状态的方法
Aug 14 Javascript
vue跨域解决方法
Oct 15 Javascript
原生JS实现前端本地文件上传
Sep 08 Javascript
微信公众号平台接口开发 获取access_token过程解析
Aug 14 Javascript
JS计算斐波拉切代码实例
Sep 12 Javascript
JavaScript实现HSL拾色器
May 21 Javascript
JS实现放大镜效果
Sep 21 Javascript
如何构建一个Vue插件并生成npm包
Oct 26 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
谈谈PHP语法(2)
2006/10/09 PHP
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
2009/03/03 PHP
一个PHP的ZIP压缩类分享
2014/05/04 PHP
php开发微信支付获取用户地址
2015/10/04 PHP
PHP数组生成XML格式数据的封装类实例
2016/11/10 PHP
PHP中Trait及其应用详解
2017/02/14 PHP
(JS实现)MapBar中坐标的加密和解密的脚本
2007/05/16 Javascript
jQuery 获取URL参数的插件
2010/03/04 Javascript
onkeypress字符按键兼容所有浏览器使用介绍
2013/04/24 Javascript
刷新页面的几种方法小结(JS,ASP.NET)
2014/01/07 Javascript
原生javascript实现DIV拖拽并计算重复面积
2015/01/02 Javascript
第五篇Bootstrap 排版
2016/06/21 Javascript
浅谈javascript中的Function和Arguments
2016/08/30 Javascript
jquery删除数组中重复元素
2016/12/05 Javascript
vuejs2.0实现分页组件使用$emit进行事件监听数据传递的方法
2017/02/22 Javascript
Vue.js父与子组件之间传参示例
2017/02/28 Javascript
微信小程序自定义组件封装及父子间组件传值的方法
2018/08/28 Javascript
Vue初始化中的选项合并之initInternalComponent详解
2020/06/11 Javascript
[42:11]TNC vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python中的一些类型转换函数小结
2013/02/10 Python
浅析AST抽象语法树及Python代码实现
2016/06/06 Python
python reduce 函数使用详解
2017/12/05 Python
Python实现Pig Latin小游戏实例代码
2018/02/02 Python
Python2与Python3的区别实例总结
2019/04/17 Python
Python企业编码生成系统之主程序模块设计详解
2019/07/26 Python
python多线程+代理池爬取天天基金网、股票数据过程解析
2019/08/13 Python
Python实现朴素贝叶斯的学习与分类过程解析
2019/08/24 Python
解决Tensorflow 使用时cpu编译不支持警告的问题
2020/02/03 Python
python文件编写好后如何实践
2020/07/07 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
2020/09/28 Python
python 6种方法实现单例模式
2020/12/15 Python
什么是Oracle的后台进程background processes?都有哪些后台进程?
2012/04/26 面试题
优秀老师事迹材料
2014/02/05 职场文书
雾霾停课通知
2015/04/24 职场文书
婚宴领导致辞
2015/07/28 职场文书
php png失真的原因及解决办法
2021/10/24 PHP