91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vuex的輔助函數如何用

發布時間:2022-05-05 17:47:34 來源:億速云 閱讀:158 作者:iii 欄目:大數據

本篇內容介紹了“vuex的輔助函數如何用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

mapState

import { mapState } from 'vuex'

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

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

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

//定義state
const state={
    count:1,
}

//在組件中使用輔助函數
computed:{
    ...mapState(['count'])
}

mapGetters

computed:{
    ...mapGetters({
      // 把 `this.doneCount` 映射為 `this.$store.getters.doneTodosCount`
      doneCount: 'doneTodosCount'
    })
}

當屬性名與getters中定義的相同時,可以傳入一個數組

computed:{
  computed: {
  // 使用對象展開運算符將 getter 混入 computed 對象中
    ...mapGetters([
      'doneTodosCount',
      'anotherGetter',
      // ...
    ])
  }
}

總結:

  • mapState與mapGetters都用computed來進行映射

  • 在組件中映射完成后,通過this.映射屬性名進行使用

mapMutations

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

當屬性名與mapMutatios中定義的相同時,可以傳入一個數組

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')`
    })
}

當屬性名與mapActios中定義的相同時,可以傳入一個數組

methods:{
    ...mapActions([
        'increment', // 將 `this.increment()` 映射為 `this.$store.dispatch('increment')`	
        // `mapActions` 也支持載荷:
        'incrementBy' // 將 `this.incrementBy(amount)` 映射為 `this.$store.dispatch('incrementBy', amount)`
    ]),
}

總結

  • mapMutations與mapActios都在methods中進行映射

  • 映射之后變成一個方法

多個modules

在不使用輔助函數的時候,

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

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

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函數來創建一個基于命名空間的輔助函數

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的輔助函數如何用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

科技| 东源县| 孟州市| 荃湾区| 安岳县| 茶陵县| 洛扎县| 祥云县| 南昌县| 闽清县| 新河县| 大新县| 塔河县| 贵南县| 邵东县| 阿拉善右旗| 儋州市| 若羌县| 新乡市| 曲松县| 合肥市| 乐安县| 洪雅县| 凤冈县| 上思县| 汉中市| 宁南县| 新干县| 杭州市| 成安县| 法库县| 邯郸市| 渭南市| 阳东县| 秦皇岛市| 怀柔区| 东丰县| 木兰县| 女性| 禹州市| 高雄市|