javascript - Apakah maksud penulisan fungsi berikut?
我想大声告诉你
我想大声告诉你 2017-06-26 10:56:52
0
2
728

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. .

我想大声告诉你
我想大声告诉你

membalas semua(2)
伊谢尔伦

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)
}
扔个三星炸死你

this.setCart() dipetakan ke this.$store.commit('setCart')

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan