没有合适的资源?快使用搜索试试~ 我知道了~
首页vuex管理状态 刷新页面保持不被清空的解决方案
vuex管理状态 刷新页面保持不被清空的解决方案
3.0k 浏览量
更新于2023-05-29
评论 1
收藏 37KB PDF 举报
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) } } 用到pu
资源详情
资源评论
资源推荐

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管理状态 刷新页面保持不被清空的解决方案就是小编分享给大家的全部内容了,希望能给大家一个参考,也希
望大家多多支持软件开发网。


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0