Vuejs2 使用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: "",

我目前正在使用这个插件

我想将它与我的Nuxt应用程序的Vuex模块一起使用

基本上,如果成功,我有一个登录模块,然后存储来自
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状态的哪些部分。