亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術(shù)文章
文章詳情頁

javascript - 請問下面的函數(shù)寫法什么意思?

瀏覽:165日期:2023-05-19 10:04:07

問題描述

在vuex中的mutations中定義的一個函數(shù),在組件中調(diào)用

//store.js在mutations中定義addCart:function (state,{goodIndex,foodIndex}) { state.goods[goodIndex].foods[foodIndex].count++; },

//組件中調(diào)用methods:{ ...mapMutations([’addCart’,’removeCart’,’setCart’]), addCartItem:function(){this.setCart({goodIndex:this.goodIndex,foodIndex:this.foodIndex}); }}

我的問題是為什么在調(diào)用setCart函數(shù)的時候不用傳入state參數(shù),目測如果調(diào)用的時候不傳state參數(shù)的話,addCart函數(shù)執(zhí)行的時候就會自動將在store中的state傳入進(jìn)去,這樣的原理是什么??這是自己半個月前寫的代碼,現(xiàn)在看怎么也不理解了。。

問題解答

回答1:

去看看源碼就知道了。

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 } // 在這里調(diào)用了commit方法 return this.$store.commit.apply(this.$store, [val].concat(args)) } }) return res})

下面是commit方法的定義

this.commit = function boundCommit (type, payload, options) { // store 就是你想要的答案 return commit.call(store, type, payload, options)}回答2:

this.setCart()被映射為this.$store.commit(’setCart’)

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 久久久久久久亚洲精品一区 | 国产真实生活伦对白 | 黄人成a动漫片免费网站 | 韩国精品欧美一区二区三区 | 日韩三级在线观看视频 | 在线看片 在线播放 | 久久er热在这里只有精品85 | 自拍网在线| 三级网址在线观看 | 国产精品19p | 欧美成a人免费观看久久 | swag国产精品一区二区 | 狠狠色狠狠色综合久久一 | 日本高清不卡在线观看 | 国内精品久久久久久久影视麻豆 | 黄色网网址 | 免费一级毛片在线播放视频 | 亚洲视频在线观看网站 | 欧美激情一区二区三区高清视频 | 精品国产三级a | 黄a 大片a v 永久免费 | 国产成人亚洲综合一区 | 亚洲成a人片在线播放 | 国产丝袜美女一区二区三区 | 欧美顶级毛片在线播放 | 亚洲精品精品一区 | 久久小视频 | 欧美激情视频一区二区免费 | 在线看国产视频 | 久久久免费视频播放 | 国内精品久久久久久中文字幕 | 国产精品黄在线观看免费软件 | 一区二区三区在线 | 网站 | 在线观看中文字幕亚洲 | 色综合在| 国产情侣久久精品 | 国产成人欧美视频在线 | 91久久国产露脸精品 | 毛片中文字幕 | 三级视频网站在线观看 | 久久免费视频精品 |