欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vuex的輔助函數(shù)該如何使用

 更新時(shí)間:2021年06月19日 08:41:02   作者:白房子  
vue通過(guò)輔助函數(shù)mapState、mapActions、mapMutations,把vuex.store中的屬性映射到vue實(shí)例身上,這樣在vue實(shí)例中就能訪(fǎng)問(wèn)vuex.store中的屬性了,對(duì)于操作vuex.store就很方便了,本文具體的介紹下這些輔助函數(shù)的使用方法

mapState

import { mapState } from 'vuex'

export default {
  // ...
  computed:{
     ...mapState({
         // 箭頭函數(shù)可使代碼更簡(jiǎn)練
         count: state => state.count,
         // 傳字符串參數(shù) 'count' 等同于 `state => state.count`
         countAlias: 'count',

         // 為了能夠使用 `this` 獲取局部狀態(tài),必須使用常規(guī)函數(shù)
         countPlusLocalState (state) {
             return state.count + this.localCount
         }
  	})
  }
}

定義的屬性名與state中的名稱(chēng)相同時(shí),可以傳入一個(gè)數(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í),可以傳入一個(gè)數(shù)組

computed:{
  computed: {
  // 使用對(duì)象展開(kāi)運(yùn)算符將 getter 混入 computed 對(duì)象中
    ...mapGetters([
      'doneTodosCount',
      'anotherGetter',
      // ...
    ])
  }
}

總結(jié):

  • mapState與mapGetters都用computed來(lái)進(jìn)行映射
  • 在組件中映射完成后,通過(guò)this.映射屬性名進(jìn)行使用

mapMutations

methods:{
    ...mapMutations({
        add: 'increment' // 將 `this.add()` 映射為 `this.$store.commit('increment')`
    })
}

當(dāng)屬性名與mapMutatios中定義的相同時(shí),可以傳入一個(gè)數(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í),可以傳入一個(gè)數(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)行映射
  • 映射之后變成一個(gè)方法

多個(gè)modules

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

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

使用輔助函數(shù),輔助函數(shù)的第一個(gè)參數(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ù)來(lái)創(chuàng)建一個(gè)基于命名空間的輔助函數(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'
    ])
  }
}

以上就是vuex的輔助函數(shù)該如何使用的詳細(xì)內(nèi)容,更多關(guān)于vuex的輔助函數(shù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • vue封裝tabs組件案例詳解

    vue封裝tabs組件案例詳解

    這篇文章主要為大家詳細(xì)介紹了vue封裝tabs組件案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Vue 報(bào)錯(cuò)Error: No PostCSS Config found問(wèn)題及解決

    Vue 報(bào)錯(cuò)Error: No PostCSS Config foun

    這篇文章主要介紹了Vue 報(bào)錯(cuò)Error: No PostCSS Config found問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Vue.js中vue-property-decorator的使用方法詳解

    Vue.js中vue-property-decorator的使用方法詳解

    vue-property-decorator是一個(gè)用于在Vue.js中使用TypeScript裝飾器的庫(kù),它能夠簡(jiǎn)化 Vue 組件的定義,使代碼更加簡(jiǎn)潔和可維護(hù),它能夠簡(jiǎn)化Vue組件的定義,使代碼更加簡(jiǎn)潔和可維護(hù),本文將深入探討vue-property-decorator的使用方法,并展示如何在Vue.js項(xiàng)目中應(yīng)用它
    2024-08-08
  • Vue中常見(jiàn)的幾種傳參方式小結(jié)

    Vue中常見(jiàn)的幾種傳參方式小結(jié)

    Vue組件的使用不管是在平常工作還是在面試面試中,都是頻繁出現(xiàn)的,下面這篇文章主要給大家介紹了關(guān)于Vue中常見(jiàn)的幾種傳參方式的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • vue.js移動(dòng)端app之上拉加載以及下拉刷新實(shí)戰(zhàn)

    vue.js移動(dòng)端app之上拉加載以及下拉刷新實(shí)戰(zhàn)

    這篇文章主要介紹了vue.js移動(dòng)端app之上拉加載以及下拉刷新實(shí)戰(zhàn),非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-09-09
  • vue實(shí)現(xiàn)點(diǎn)擊展開(kāi)點(diǎn)擊收起效果

    vue實(shí)現(xiàn)點(diǎn)擊展開(kāi)點(diǎn)擊收起效果

    這篇文章主要介紹了vue實(shí)現(xiàn)點(diǎn)擊展開(kāi),點(diǎn)擊收起效果,首先我們需要定義data里面的數(shù)據(jù),使用computed對(duì)data進(jìn)行處理,需要的朋友可以參考下
    2018-04-04
  • vue+F2生成折線(xiàn)圖的方法

    vue+F2生成折線(xiàn)圖的方法

    這篇文章主要為大家詳細(xì)介紹了vue+F2生成折線(xiàn)圖的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 關(guān)于Element-UI Table 表格指定列添加點(diǎn)擊事件

    關(guān)于Element-UI Table 表格指定列添加點(diǎn)擊事件

    這篇文章主要介紹了關(guān)于Element-UI Table 表格指定列添加點(diǎn)擊事件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • vue中如何簡(jiǎn)單封裝axios淺析

    vue中如何簡(jiǎn)單封裝axios淺析

    Axios 毋庸多說(shuō)大家在前端開(kāi)發(fā)中常用的一個(gè)發(fā)送 HTTP 請(qǐng)求的庫(kù),用過(guò)的都知道,篇文章主要給大家介紹了關(guān)于vue中如何簡(jiǎn)單封裝axios的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • vue實(shí)現(xiàn)簡(jiǎn)單表格組件實(shí)例詳解

    vue實(shí)現(xiàn)簡(jiǎn)單表格組件實(shí)例詳解

    vue的核心思想就是組件,什么是組件呢?按照我的理解組件就是裝配頁(yè)面的零件,vue三大核心組件 路由 狀態(tài)管理,路由控制頁(yè)面的渲染,頁(yè)面由組件組成,數(shù)據(jù)有vuex進(jìn)行管理和改變。下面我會(huì)以一個(gè)簡(jiǎn)單的案例來(lái)說(shuō)
    2017-04-04

最新評(píng)論