Vuejs2 使用vuex持久化状态将数据保存到本地存储
我目前正在使用这个插件 我想将它与我的Nuxt应用程序的Vuex模块一起使用 基本上,如果成功,我有一个登录模块,然后存储来自Vuejs2 使用vuex持久化状态将数据保存到本地存储,vuejs2,vuex,nuxt.js,vuex-modules,Vuejs2,Vuex,Nuxt.js,Vuex Modules,我目前正在使用这个插件 我想将它与我的Nuxt应用程序的Vuex模块一起使用 基本上,如果成功,我有一个登录模块,然后存储来自localStorage的响应的authToken 这是我的密码: import axios from "axios"; import createPersistedState from 'vuex-persistedstate'; export const state = () => ({ signInAttrs: { email: "",
localStorage的响应的authToken
这是我的密码:
import axios from "axios";
import createPersistedState from 'vuex-persistedstate';
export const state = () => ({
signInAttrs: {
email: "",
password: ""
},
authToken: ""
});
export const mutations = {
SET_AUTH_TOKEN(state, token) {
state.authToken = token;
createPersistedState({
key: 'admin-auth-key',
paths: [],
reducer: state => ({
authToken: '123123123'
})
})(store);
}
};
export const actions = {
signInAdmin({ commit }, context) {
return axios.post(`${process.env.BASE_URL}/sign_in`, {
email: context.email,
password: context.password
}).then(response => {
commit('SET_AUTH_TOKEN', response.data.headers.token);
}).catch(error => {
console.log(`failed ${error}`);
});
}
};
export const getters = {
signInAttrs(state) {
return state.signInAttrs;
},
authToken(state) {
return state.authToken;
}
};
在这些变体中有一个SET\u AUTH\u TOKEN
,它从API接收作为参数的TOKEN。如何将其保存到本地存储?我认为您误解了vuex persistedstate的用法。将其添加到存储插件(plugins:[createPersistedState()]
)后,它会在每次提交时自动更新本地存储变量vuex
,并使用存储副本(请参阅)。因此,您的令牌应该已经位于localStorage
中的vuex.authToken
中
如果您只想使用自定义名称存储变量,则可以不使用插件来实现:localStorage.setItem('key','value')
。请参阅。别忘了将Vuex persistedstate作为Nuxt插件(记录在GitHub上)。您还可以使用createPersistedState
的path
选项来过滤要持久化的Vuex状态的哪些部分。