Судя по вашим заданным кодам, ваши коды и файлы немного запутаны, я вижу, что вы пытаетесь использовать vuex с модулями, но то, как вы делаете это, кажется неправильным, не могу сказать, потому что я могу 'не вижу структуру ваших папок и файлов.
Давайте начнем с простого метода достижения этого.
1.создайте папку store
внутри вашей папки src
2.создайте тип мутации const js src/store/mutation-types.js
Внутри вашего mutation-types.js
поместите этот код
export const UPDATE_USER = 'UPDATE_USER'
3.В папке вашего магазина создайте файл index.js
4.Внутри вашего src/store/index.js
вы поместите следующий код
index.js
// import your mutation type name constants
import * as types from './mutation-types'
export default new Vuex.Store({
state: {
user: {} // default empty object
},
getters: {
//...other getters...
},
mutations: {
// mutating your user state
[types.UPDATE_USER](state, user) {
state.user = user
}
},
actions: {
},
})
5.Убедитесь, что вы импортируете хранилище vuex в main.js
Внутри вашего main.js
import store from './store'
// other codes
// export Vue
export default new Vue({
el: '#app',
router,
store, // add your store
components: {App},
template: '<App/>'
})
6.фиксация внутри вашего компонента
Login.vue
methods:{
logIn() {
// let say you have gotten your user data
// then you can commit it into vuex storage by using the mutation constant name you defined
let userData = {user_id: 1}
this.$store.commit('UPDATE_USER', userData)
}
}
Вот и все, будьте проще при первом запуске, не пытайтесь делать что-нибудь необычное, как модули.