欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue $store dispatch

錢淋西2年前9瀏覽0評論

$store.dispatch用于觸發(fā)一個action。

action是一個包含type和payload屬性的對象,type描述了要執(zhí)行的操作,payload包含了傳給操作的數(shù)據(jù)。

在使用$store.dispatch時,可以傳入一個action的對象作為參數(shù),也可以傳入action對象的type和payload作為參數(shù)。

this.$store.dispatch('increment', 10); 
// 等價于 
this.$store.dispatch({ type: 'increment', payload: 10 });

action的執(zhí)行可以產(chǎn)生副作用,例如改變state或者觸發(fā)另一個action等。使用$store.dispatch所觸發(fā)的action,會被提交到store的actions對象中尋找對應的方法進行處理。一個action的處理可能包括多步操作,例如先發(fā)送一個網(wǎng)絡請求,等待服務器響應后再修改state等,在action中可以使用Promise進行異步處理。

actions: {
async fetchData({ commit }) {
const response = await fetch('/api/data');
const data = await response.json();
commit('setData', data);
}
}

在組件中,可以使用$store.dispatch來觸發(fā)一個action,也可以使用mapActions將action映射為組件的方法。

import { mapActions } from 'vuex';
export default {
methods: {
...mapActions(['increment', 'fetchData']),
async loadData() {
await this.fetchData();
console.log(this.data); // 獲取state中的數(shù)據(jù)
}
},
computed: {
...mapState(['data'])
}
}