代码如下:Vue.use(Vuex)const localLoginData = global.localStorage;const store = new Vuex.Store({ state: { logindata:JSON.parse(localStorage.getItem('logindata')), // 初始化vuex,刷新时获取localstorage form1: {} //登录信息 }, getters:{ getUserInfo:(state)=>state.logindata==null?'':state.logindata, }, mutations: { updatelogindata(state, logindata) { state.logindata = logindata; localStorage.setItem('logindata',JSON.stringify(logindata));// 提交mutation成功后保存logindata到localStorage }, updatamessage(state, form1) { state.form1 = form1 } },为什么一刷新还是state还是清空了,明明已经保存成功到了localstorage里了啊,试过很多方法了,难道vuex不能实现持久化缓存么?
5 回答
牛魔王的故事
TA贡献1830条经验 获得超3个赞
开满天机
TA贡献1786条经验 获得超13个赞
登录信息也保存一下,在
state.form1 = form1后面;const localLoginData = global.localStorage这句可以不用。
神不在的星期二
TA贡献1963条经验 获得超6个赞
你可以通过actions来获取logindata的值
mutations: {
getUsers(state, e){
state.logindata = e;
},
},
actions: {
getUser ({ commit }) {
let logindata = JSON.parse(localStorage.getItem('logindata'));
commit('getUsers',logindata );
}
},
this.$store.dispatch('getUser');
这样state就有值了。
添加回答
举报
0/150
提交
取消
