В моей /src/store/
папке у меня есть actions.js
, index.js
, mutations.js
и state.js
которые содержат следующую информацию
actions.js
export default {}
index.js
import Vue from 'vue'
import Vuex from 'vuex'
import state from './state'
import actions from './actions'
import mutations from './mutations'
Vue.use(Vuex)
export default new Vuex.Store({
state,
actions,
mutations
})
mutations.js
export default {
TOGGLE_LOADING (state) {
state.callingAPI = !state.callingAPI
},
TOGGLE_SEARCHING (state) {
state.searching = (state.searching === '') ? 'loading' : ''
},
SET_USER (state, user) {
state.user = user
},
SET_TOKEN (state, token) {
state.token = token
}
}
и state.js
export default {
callingAPI: false,
searching: '',
serverURI: 'http://10.110.1.136:8080',
user: null,
token: null,
userInfo: {
messages: [{1: 'test', 2: 'test'}],
notifications: [],
tasks: []
}
}
Теперь, когда пользователь входит в систему, я сохраняю состояние как
this.$store.commit('SET_USER', response.data)
Теперь, когда пользователь выходит из системы, я запускаю файл components/logout.vue
в котором он имеет следующий код:
export default {
data() {},
created() {
localStorage.setItem('vuex', null);
this.$store.commit('SET_USER', null);
window.localStorage.clear();
window.sessionStorage.clear();
}
}
Но почему-то данные каким-то образом сохраняются.
вы пытались импортировать свой магазин в компонент logout.vue?
const store = require('path/to/index.js');
затем в созданном вами методе попробуйте
store.default.commit('SET_USER', null);
But for some reason, the data is somehow persisted.
Сохранились где? вstate.user
или localStorage?state.user