Ich gewöhne mich an Vuex
, da ich in der Lage sein muss, einen Speicher zu haben, auf den ich leicht zugreifen und aktualisieren kann, wenn eine andere Komponente geändert wird.VueJS - Vuex Daten in einer Mutation zuweisen
Derzeit meine store
sieht wie folgt aus:
import vue from 'vue';
import Vuex from 'vuex';
vue.use(Vuex);
export default new Vuex.Store({
state: {
users: {
columns: [],
model: [],
}
},
mutations: {
fetchUsers: function(state) {
axios.get(`/users?search_input=`)
.then(function(response) {
});
}
}
});
Die columns
und model
wird dynamisch nach unten gezogen von einem Ajax-Request und meine Users
sieht wie folgt aus:
<script>
export default {
mounted() {
this.$store.commit('fetchUsers');
},
computed: {
columns() {
return this.$store.state.users.columns;
}
model() {
return this.$store.state.users.model
}
},
}
</script>
Mein Problem ist, dass die Anwendung Daten von Ajax geladen haben muss. Zum Beispiel columns
werden von einer AJAX-Anfrage in fetchUsers
und innerhalb der Users
ich this.$store.commit('fetchUsers');
setzen, aber gibt es eine alternative Möglichkeit, die ich tun kann, ohne commit
vorzugsweise im Laden selbst zu verwenden?
Vuex [Mutationen] (https://vuex.vuejs.org/en/mutations.html) ** ** mutieren die Zustand - hier ändern Sie den Zustand selbst - sie sind immer synchron. Vuex [Aktionen] (https://vuex.vuejs.org/en/actions.html) tun _things_, wie Netzwerkanforderungen, um Daten zu erhalten - sie können asynchron sein. Sobald Sie eine Aktion versenden, müssen Sie sie über eine Mutation festschreiben. – wing