精慕HU
2018-12-29 23:14:19
我在使用vuex的時(shí)候,看到用到了參數(shù)解構(gòu),但是我很納悶,這個(gè)commit 是從哪里解構(gòu)來(lái)的?哪里提供的commit這個(gè)參數(shù)? 它的沒(méi)簡(jiǎn)化的寫法是怎么寫的?actions: { increment ({ commit }) { commit('increment') }}
1 回答

夢(mèng)里花落0921
TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊
在vuex的api中action的部分有這樣一句話“處理函數(shù)總是接受 context 作為第一個(gè)參數(shù),payload 作為第二個(gè)參數(shù)(可選)”。
你可以理解為action中的函數(shù)會(huì)默認(rèn)自動(dòng)獲取context這個(gè)對(duì)象為第一個(gè)參數(shù)。
而context這個(gè)對(duì)象擁有和store相同的屬性和方法,從圖中可以看到。
而increment ({ commit }) { ... }中的參數(shù)對(duì)象{..}就是指的context對(duì)象,而{ commit }就是指的context對(duì)象中的commit方法.
沒(méi)有簡(jiǎn)化的寫法是:
actions: {
increment (context) {
context.commit('increment')
}
}
不知道我有沒(méi)有說(shuō)清楚,我想命理難說(shuō)也是想表達(dá)這個(gè)意思,只是官方文檔講得比較精簡(jiǎn)。
添加回答
舉報(bào)
0/150
提交
取消