vuex管理状态 刷新页面保持不被清空的解决方案
更新时间:2019年11月11日 19:29:22 作者:WwangXue
今天小编就为大家分享一篇vuex管理状态 刷新页面保持不被清空的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
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管理状态 刷新页面保持不被清空的解决方案就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Vue 中 filter 与 computed 的区别与用法解析
这篇文章主要介绍了Vue 中 filter 与 computed 的区别与用法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下2019-11-11使用vue深度选择器修改ElementUI组件内样式的示例代码
在带有scoped属性的style中书写样式时,无法作用影响到子组件中的样式,此时我们会使用到deep深度选择器,来解决此问题,我们在使用less预处理器,能正常使用,但是在scss预处理器中会报错,下面通过本文介绍vue深度选择器修改ElementUI组件内样式,需要的朋友可以参考下2022-12-12
最新评论