2017-12-17 1 views
0

Ich habe recherchiert und bis jetzt kein Glück gefunden, die Antwort zu finden. Momentan habe ich eine Store-Instanz mit 2 Modulen, aber wir werden die erste als Beispiel verwenden.Kann eine Aktion in Vuex selbst gesendet werden, wenn die Vue-Instanz gestartet wird?

/Store/index.js

import Vuex from 'vuex'; 
Vue.use(Vuex); 

const store = new Vuex.Store({ 
    modules: { 
     header: require('./modules/header/index').default, 
     current_user: require('./modules/user/index').default, 
    } 
}); 

export default store 

/Store/modules/user/index.js

const state = { 
    information: [], 
} 

const mutations = { 
    setInformation(state, data){ 
     state.information = data; 
    } 
} 

const getters = { 
    getFirstName(state){ 
     return state.information.first_name; 
    }, 
    getProfileImage(state){ 
     return state.information.image; 
    } 
} 

const actions = { 
    requestInformation({commit}){ 
     axios.get('/app/account/requestUserInformation').then(response => commit('setInformation', response.data)); 
    } 
} 

export default { 
    state, 
    mutations, 
    getters, 
    actions 
} 

Im Moment habe ich eine Aktion requestInformation und auf eine andere Datei mit dem Namen app.vue Ich nenne es so.

created(){ 
    this.$store.dispatch('requestInformation'); 
} 

ich mich gefragt, ob es möglich ist, zu versenden/machen die Anfrage an den requestInformation von vuex selbst, anstatt sie außerhalb der Datei aufrufen zu müssen, um so schnell wie das globale Geschäft der requestInformation initiiert würde aufgerufen werden .

Ich versuche zu vermeiden, die Aktionen aus verschiedenen Dateien zu versenden.

Antwort

1

Sie eine Aktion auslösen kann, sobald Sie den Laden in /Store/index.js wie folgt zu erstellen:

import Vuex from 'vuex'; 
Vue.use(Vuex); 

const store = new Vuex.Store({ 
    modules: { 
     header: require('./modules/header/index').default, 
     current_user: require('./modules/user/index').default, 
    } 
}); 

store.dispatch('requestInformation'); 

export default store 
+0

Perfect, danke. Da es nicht möglich ist, innerhalb meiner '/ Store/modules/user/index.js' anrufen, wird es mir immer noch helfen, alles viel besser organisiert zu halten. – Craig

Verwandte Themen