vuex中的輔助函數(shù)基本的使用

mapState

import { mapState } from 'vuex'

export default {

? // ...

? computed:{

? ? ...mapState({

? ? ? ? // 箭頭函數(shù)可使代碼更簡練

? ? ? ? count: state => state.count,

? ? ? ? // 傳字符串參數(shù) 'count' 等同于 `state => state.count`

? ? ? ? countAlias: 'count',

? ? ? ? // 為了能夠使用 `this` 獲取局部狀態(tài)盖呼,必須使用常規(guī)函數(shù)

? ? ? ? countPlusLocalState (state) {

? ? ? ? ? ? return state.count + this.localCount

? ? ? ? }

? })

? }

}

定義的屬性名與state中的名稱相同時,可以傳入一個數(shù)組

//定義state

const state={

? ? count:1,

}

//在組件中使用輔助函數(shù)

computed:{

? ? ...mapState(['count'])

}

mapGetters

computed:{

? ? ...mapGetters({

? ? ? // 把 `this.doneCount` 映射為 `this.$store.getters.doneTodosCount`

? ? ? doneCount: 'doneTodosCount'

? ? })

}

當(dāng)屬性名與getters中定義的相同時,可以傳入一個數(shù)組

computed:{

? computed: {

? // 使用對象展開運(yùn)算符將 getter 混入 computed 對象中

? ? ...mapGetters([

? ? ? 'doneTodosCount',

? ? ? 'anotherGetter',

? ? ? // ...

? ? ])

? }

}

總結(jié):

mapState與mapGetters都用computed來進(jìn)行映射

在組件中映射完成后,通過this.映射屬性名進(jìn)行使用

mapMutations

methods:{

? ? ...mapMutations({

? ? ? ? add: 'increment' // 將 `this.add()` 映射為 `this.$store.commit('increment')`

? ? })

}

當(dāng)屬性名與mapMutatios中定義的相同時,可以傳入一個數(shù)組

methods:{

? ? ...mapMutations([

? ? ? ? 'increment', // 將 `this.increment()` 映射為 `this.$store.commit('increment')`

? ? ? ? // `mapMutations` 也支持載荷:

? ? ? ? 'incrementBy' // 將 `this.incrementBy(amount)` 映射為 `this.$store.commit('incrementBy', amount)`

? ? ]),

}

mapActios

mathods:{

? ? ...mapActions({

? ? ? ? add: 'increment' // 將 `this.add()` 映射為 `this.$store.dispatch('increment')`

? ? })

}

當(dāng)屬性名與mapActios中定義的相同時旬痹,可以傳入一個數(shù)組

methods:{

? ? ...mapActions([

? ? ? ? 'increment', // 將 `this.increment()` 映射為 `this.$store.dispatch('increment')`

? ? ? ? // `mapActions` 也支持載荷:

? ? ? ? 'incrementBy' // 將 `this.incrementBy(amount)` 映射為 `this.$store.dispatch('incrementBy', amount)`

? ? ]),

}

總結(jié)

mapMutations與mapActios都在methods中進(jìn)行映射

映射之后變成一個方法

多個modules

在不使用輔助函數(shù)的時候,

this.$store.commit('app/addCount')

使用輔助函數(shù),輔助函數(shù)的第一個參數(shù)給定命名空間的路徑

computed: {

? ...mapState('some/nested/module', {

? ? a: state => state.a,

? ? b: state => state.b

? })

},

methods: {

? ...mapActions('some/nested/module', [

? ? 'foo', // -> this.foo()

? ? 'bar' // -> this.bar()

? ])

}

或者使用 createNamespacedHelpers函數(shù)來創(chuàng)建一個基于命名空間的輔助函數(shù)

import { createNamespacedHelpers } from 'vuex'

const { mapState, mapActions } = createNamespacedHelpers('some/nested/module') //給定路徑

//使用方法與之前相同

export default {

? computed: {

? ? // 在 `some/nested/module` 中查找

? ? ...mapState({

? ? ? a: state => state.a,

? ? ? b: state => state.b

? ? })

? },

? methods: {

? ? // 在 `some/nested/module` 中查找

? ? ...mapActions([

? ? ? 'foo',

? ? ? 'bar'

? ? ])

? }

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末灸拍,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子砾省,更是在濱河造成了極大的恐慌鸡岗,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件编兄,死亡現(xiàn)場離奇詭異轩性,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)狠鸳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進(jìn)店門揣苏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人件舵,你說我怎么就攤上這事卸察。” “怎么了铅祸?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵坑质,是天一觀的道長。 經(jīng)常有香客問我,道長洪乍,這世上最難降的妖魔是什么眯杏? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮壳澳,結(jié)果婚禮上岂贩,老公的妹妹穿的比我還像新娘。我一直安慰自己巷波,他們只是感情好萎津,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著抹镊,像睡著了一般锉屈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上垮耳,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天颈渊,我揣著相機(jī)與錄音,去河邊找鬼终佛。 笑死俊嗽,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的铃彰。 我是一名探鬼主播绍豁,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼牙捉!你這毒婦竟也來了竹揍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤邪铲,失蹤者是張志新(化名)和其女友劉穎芬位,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體霜浴,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡晶衷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年蓝纲,在試婚紗的時候發(fā)現(xiàn)自己被綠了阴孟。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡税迷,死狀恐怖永丝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情箭养,我是刑警寧澤慕嚷,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響喝检,放射性物質(zhì)發(fā)生泄漏嗅辣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一挠说、第九天 我趴在偏房一處隱蔽的房頂上張望澡谭。 院中可真熱鬧,春花似錦损俭、人聲如沸蛙奖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽雁仲。三九已至,卻和暖如春琐脏,著一層夾襖步出監(jiān)牢的瞬間攒砖,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工日裙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留祭衩,地道東北人。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓阅签,卻偏偏與公主長得像掐暮,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子政钟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容

  • ### store 1. Vue 組件中獲得 Vuex 狀態(tài) ```js //方式一 全局引入單例類 // 創(chuàng)建一...
    蕓豆_6a86閱讀 726評論 0 3
  • Vuex 的學(xué)習(xí)記錄 資料參考網(wǎng)址Vuex中文官網(wǎng)Vuex項(xiàng)目結(jié)構(gòu)示例 -- 購物車Vuex 通俗版教程N(yùn)uxt....
    流云012閱讀 1,451評論 0 7
  • 安裝 npm npm install vuex --save 在一個模塊化的打包系統(tǒng)中路克,您必須顯式地通過Vue.u...
    蕭玄辭閱讀 2,926評論 0 7
  • ### store 1. Vue 組件中獲得 Vuex 狀態(tài) ```js //方式一 全局引入單例類 // 創(chuàng)建一...
    蕓豆_6a86閱讀 339評論 0 0
  • vue是當(dāng)今比較火的一種框架,在很多方面都會用到Vue,今天帶大家簡單了解一下vue中一款常用的插件VueX 首先...
    大馬虎閱讀 284評論 0 0