Vuex / Vuejs: доступ к localStorage в магазине vuex - PullRequest
0 голосов
/ 31 мая 2018

Я использую localStorage для установки и получения элементов, которые помещены в мой код JavaScript в файле .vue.Тем не менее, я хотел бы как-то получить доступ к этому хранилищу и поместить его в мой раздел хранилища VUEX, который находится в другом файле, наиболее предпочтительно в мутациях.

Если кто-то знает, как это сделать, пожалуйста, не могли бы вы помочь.Ниже приведен код localStorage, который я использую.

if(response.status === 200){
                            console.log('TOKEN_SET', response)
                            this.access_token = response.data.access_token
                            localStorage.setItem(this.access_token, JSON.stringify(this.access_token));
                        };
    mounted(){
            console.log('GOT_TOKEN')
            if(localStorage.getItem(this.access_token)) this.access_token = JSON.parse(localStorage.getItem(this.access_token))
        }

Большое спасибо!

1 Ответ

0 голосов
/ 31 мая 2018

Используйте мутацию, чтобы установить состояние магазина и хранилище локали.При загрузке приложения вызовите действие магазина, чтобы инициировать его.код должен выглядеть следующим образом в вашей мутации.

{
  mutations: {
    SET_TOKEN (state, value) {
      state.token = JSON.parse(value)
      localStorage.setItem('token', JSON.stringify(token);
    } 
  },

  getters: {
    token (state) {
      return state.token
    }
  }

  actions: {
    init(store) {
       store.actions.setToken(store, JSON.parse(localStorage.getItem('token') || ''))
    },

    setToken(store, value) {
      store.commit('SET_TOKEN', value)
    }
  }
}
...