cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Apakah maksud penulisan fungsi berikut?

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

我想大声告诉你我想大声告诉你2714 hari yang lalu739

membalas semua(2)saya akan balas

  • 伊谢尔伦

    伊谢尔伦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)
    }

    balas
    0
  • 扔个三星炸死你

    扔个三星炸死你2017-06-26 10:58:52

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

    balas
    0
  • Batalbalas