"在 sessionStorage 和 localStorage 之间切换的 vuex-persistedstate"
P粉295728625
2023-08-25 23:06:52
<p>如果用户选择了“记住我”复选框,我想要从sessionStorage切换到localStorage,同时我使用vuex-persistedstate</p>
<pre class="brush:php;toolbar:false;">export default store(function (/* { ssrContext } */) {
const Store = createStore({
state: {
},
actions: {
setLodingMode({ commit }, newMode) {
commit("SET_LOADING_MODE", newMode);
},
resetStates({ commit }) {
commit("AUTHENTICATION_RESET_STATE");
commit("login/RESET_STATE");
},
},
modules: { login, authentication },
plugins: [createPersistedState()],
});
return Store;
});</pre>
<p>关键是我想要像这样进行更改</p>
<pre class="brush:php;toolbar:false;">state: {
flag: false
},
plugins: [
createPersistedState({
storage: flag ? window.localStorage : window.sessionStorage,
}),
],</pre>
<p>我希望flag根据用户在登录时选择的“记住我”复选框而改变,所以当用户选择复选框时,flag变为true,并且所有数据保存在localStorage中</p>
根据@Estus Flask的评论,我使用了自定义存储,并通过直接调用localStorage来管理“记住我”选项,并在localStorage中设置了一个标志。
并且我在每次注销或401响应时清除localStorage。