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打开层/关闭层/移动层动画效果的实例代码
May 11 Javascript
一个简单的实现下拉框多选的插件可移植性比较好
May 05 Javascript
简述AngularJS相关的一些编程思想
Jun 23 Javascript
详解XMLHttpRequest(一)同步请求和异步请求
Sep 14 Javascript
基于 flexible 的 Vue 组件:Toast -- 显示框效果
Dec 26 Javascript
使用D3.js创建物流地图的示例代码
Jan 27 Javascript
Postman模拟发送带token的请求方法
Mar 31 Javascript
微信小程序实现人脸识别登陆的示例代码
Apr 02 Javascript
微信小程序使用echarts获取数据并生成折线图
Oct 16 Javascript
selenium+java中用js来完成日期的修改
Oct 31 Javascript
javascript利用canvas实现鼠标拖拽功能
Jul 23 Javascript
vue 扩展现有组件的操作
Aug 14 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 配置open_basedir 让各虚拟站点独立运行
2009/11/12 PHP
php模拟socket一次连接,多次发送数据的实现代码
2011/07/26 PHP
php一维二维数组键排序方法实例总结
2014/11/13 PHP
php将字符串随机分割成不同长度数组的方法
2015/06/01 PHP
Thinkphp实现自动验证和自动完成
2015/12/19 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
2016/03/05 PHP
PHP中ajax无刷新上传图片与图片下载功能
2017/02/21 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
2018/06/13 PHP
validator验证控件使用代码
2010/11/23 Javascript
有关easyui-layout中的收缩层无法显示标题的解决办法
2016/05/10 Javascript
js中获取jsp表单中radio类型的值简单实例
2016/08/15 Javascript
在JS中a标签加入单击事件屏蔽href跳转页面
2016/12/16 Javascript
node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解决方法
2016/12/18 Javascript
JavaScript实现打地鼠小游戏
2020/04/23 Javascript
利用 spin.js 生成等待效果(js 等待效果)
2017/06/25 Javascript
jQuery删除/清空指定元素的所有子节点实例代码
2019/07/04 jQuery
在Uni中使用Vue的EventBus总线机制操作
2020/07/31 Javascript
python提示No module named images的解决方法
2014/09/29 Python
Python格式化输出%s和%d
2018/05/07 Python
Python函数参数匹配模型通用规则keyword-only参数详解
2019/06/10 Python
python 字典有序并写入json文件过程解析
2019/09/30 Python
django中间键重定向实例方法
2019/11/10 Python
Django限制API访问频率常用方法解析
2020/10/12 Python
详解CSS3伸缩布局盒模型Flex布局
2018/08/20 HTML / CSS
戴森比利时官方网站:Dyson BE
2020/10/03 全球购物
C面试题
2015/10/08 面试题
What's the difference between an interface and abstract class? (接口与抽象类有什么区别)
2012/10/29 面试题
如何撰写一封出色的求职信
2014/04/27 职场文书
商业融资计划书
2014/04/29 职场文书
爱国口号
2014/06/19 职场文书
党的作风建设心得体会
2014/10/22 职场文书
2015年电工工作总结
2015/04/10 职场文书
演讲稿:​快乐,从不抱怨开始!
2019/04/02 职场文书
少年的你:世界上没有如果,要在第一次就勇敢的反抗
2019/11/20 职场文书
一文搞懂Golang 时间和日期相关函数
2021/12/06 Golang
Go并发4种方法简明讲解
2022/04/06 Golang