vuex刷新store值消失

进入页面,在某个方法中成功设置了某个store值。
刷新当前页,在路由守卫获取时——空值。
跳转路由时,在路由守卫获取时——有值。
虽然这个后来在APP.vue利用beforeunload和sessionStorage处理了下,但是还是搞不懂这个现象,有大佬可以为我解释一下嘛?

下图是设置store值的代码片段,这个设置完console出是有值的:
vuex刷新store值消失

下图是mutations代码片段,vuex的写法是没有问题的:
vuex刷新store值消失

下图是刷新时App.vue中获取值的显示,可以看到这个aiEngineUUID是空的(其它store有值)。
vuex刷新store值消失

下图是App.vue的解决方案。
vuex刷新store值消失


回答:

store 就是个页面中的全局变量,数据在内存中,刷新页面当然会消失。
你可以在 mutations 里直接设置

const getAiEngineUUID = () => {

JSON.parse(sessionStorage.getItem("store"));

}

const setAiEngineUUID = (data) => {

sessionStorage.setItem("store", JSON.stringify(data));

}

// 获取的时候

state = {

aiEngineUUID: getAiEngineUUID(),

}

//...

SET_AI_ENGINE_UUID(state, aiEngineUUID) {

//... 本地存储的代码

setAiEngineUUID();

state.aiEngineUUID = aiEngineUUID;

}

//...

开头的两个函数 可以写到单独的文件中引用进来,这样 store 持久的方案改变了,就不用修改其它地方了。


回答:

数据在内存,刷新关闭等需要做数据持久化 vuex-persistedstate 或者 重新请求

以上是 vuex刷新store值消失 的全部内容, 来源链接: utcz.com/p/936379.html

回到顶部