Rumah > Soal Jawab > teks badan
Fungsi yang ditakrifkan dalam mutasi dalam vuex dan dipanggil dalam komponen
//store.js在mutations中定义
addCart:function (state,{goodIndex,foodIndex}) {
state.goods[goodIndex].foods[foodIndex].count++;
},
//组件中调用
methods:{
...mapMutations(['addCart','removeCart','setCart']),
addCartItem:function(){
this.setCart({goodIndex:this.goodIndex,foodIndex:this.foodIndex});
}
}
Soalan saya ialah mengapa tidak perlu lulus dalam parameter keadaan semasa memanggil fungsi setCart Secara visual, jika parameter keadaan tidak diluluskan semasa memanggil, fungsi addCart akan secara automatik lulus dalam keadaan dalam stor apabila ia dilaksanakan. Prinsip ini Apa itu? ? Ini adalah kod yang saya tulis setengah bulan yang lalu, tetapi sekarang saya tidak memahaminya. .
伊谢尔伦2017-06-26 10:58:52
Hanya pergi dan lihat kod sumber dan anda akan tahu.
export const mapMutations = normalizeNamespace((namespace, mutations) => {
const res = {}
normalizeMap(mutations).forEach(({ key, val }) => {
val = namespace + val
res[key] = function mappedMutation (...args) {
if (namespace && !getModuleByNamespace(this.$store, 'mapMutations', namespace)) {
return
}
// 在这里调用了commit方法
return this.$store.commit.apply(this.$store, [val].concat(args))
}
})
return res
})
Berikut ialah definisi kaedah komit
this.commit = function boundCommit (type, payload, options) {
// store 就是你想要的答案
return commit.call(store, type, payload, options)
}