亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vue前端開發(fā)輔助函數(shù)狀態(tài)管理詳解示例

 更新時間:2021年10月09日 17:15:54   作者:guoyp2126  
vue的應用狀態(tài)管理提供了mapState、mapGetters、mapMutations、mapActions四個輔助函數(shù),所謂的輔助函數(shù)分別對State、Getters、Mutations、Actions在完成狀態(tài)的使用進行簡化

mapState

當一個組件需要獲取多個狀態(tài)時候,將這些狀態(tài)都聲明為計算屬性會有些重復和冗余。為了解決這個問題,我們可以使用 mapState 輔助函數(shù)幫助我們生成計算屬性。不使用mapState時,獲取對象狀態(tài),通常放在使用組件的computes屬性中,使用方式為:

  //....
  computed: {
        count: function(){
            return this.$store.state.count
        }
    }
 //....    

使用mapState可以簡化為:

import { mapState } from 'vuex'  //引入mapState對象 
export default {
  // ...
  computed: mapState({
    // 箭頭函數(shù)可使代碼更簡練
    count: state => state.count,
  })
}
或者
import { mapState } from 'vuex'  //引入mapState對象 
export default {
  // ...
  computed: mapState({
    'count', //與state名稱一致
     countAlias:'count' //countAlias是在引用組件中使用的別名
  })
}

mapGetters

mapGetters 輔助函數(shù)僅僅是將 store 中的 getters 映射到局部計算屬性,與state類似。由計算函數(shù)代碼簡化為;

import { mapGetters } from 'vuex'
export default {
  // ...
  computed: {
  // 使用對象展開運算符將 getters 混入 computed 對象中
    ...mapGetters([
      'countDouble',
      'CountDoubleAndDouble',
      //..
    ])
  }
}

mapGetters也可以使用別名。

mapMutations

使用 mapMutations 輔助函數(shù)將組件中的methods映射為store.commit調用,簡化后代碼為:

import { mapMutations } from 'vuex'
export default {
  //..
  methods: {
    ...mapMutations([
      'increment' // 映射 this.increment() 為 this.$store.commit('increment')
    ]),
    ...mapMutations({
      add: 'increment' // 映射 this.add() 為 this.$store.commit('increment')
    })
  }
}

mapActions

使用 mapActions 輔助函數(shù)將組件的methods映射為store.dispatch調用,簡化后代碼為:

import { mapActions } from 'vuex'
export default {
  //..
  methods: {
    ...mapActions([
      'incrementN' //映射 this.incrementN() 為 this.$store.dispatch('incrementN')
    ]),
    ...mapActions({
      add: 'incrementN' //映射 this.add() 為 this.$store.dispatch('incrementN')
    })
  }
}

示例

沿用vue狀態(tài)管理(二)中的示例,使用輔助函數(shù)完成。在CountChange和ComputeShow兩個組件使用了輔助函數(shù),其余代碼無需改動。
在ComputeShow使用了mapState,mapGetters兩個輔助函數(shù),代碼如下

<template>
  <div align="center" style="background-color: bisque;">
    <p>以下是使用computed直接獲取stores中的狀態(tài)數(shù)據(jù),狀態(tài)數(shù)據(jù)發(fā)生變化時,同步刷新</p>
    <h1>使用computed接收 state:{{ computedState }}</h1>
    <h1>使用computed接收Getters:{{ computedGetters }}</h1>
  </div>
</template>
<script>
  import { mapState,mapGetters } from 'vuex'  //引入mapState,mapGetters對象
  export default {
    name: 'ComputeShow',
    computed:{
    ...mapState({
      computedState:'count'  //別名:computedState
    }),
    ...mapGetters({
      computedGetters:'getChangeValue' //別名:computedGetters
    })
    }
  }
</script>
<style>
</style>

建議使用map時,增加別名,這樣就和stores里面內容脫耦。在CountChange使用了mapMutations和mapActions兩個輔助函數(shù),代碼如下

<template>
  <div align="center">
    <input type="number" v-model="paramValue" />
    <button @click="addNum({res: parseInt(paramValue)})">+增加</button>
    <button @click="subNum">-減少</button>
  </div>
</template>
<script>
  import {
    mapMutations,
    mapActions
  } from 'vuex' //引入mapMutations、mapActions對象
  export default {
    name: 'CountChange',
    data() {
      return {
        paramValue: 1,
      }
    },
    methods: {
      ...mapMutations({
        subNum: 'sub'  //增加別名subNum
      }),
      ...mapActions({
        addNum: 'increment' //映射 this.incrementN() 為 this.$store.dispatch('incrementN')
      })
    }
  }
</script>
<style>
</style>

同樣給stores中的方法制定別名,當需要傳參數(shù)時,通過別名將參數(shù)傳遞給actions或mutations。如:"addNum({res: parseInt(paramValue)})"中傳送了一個對象{res:‘'}

小結

輔助函數(shù)本身沒有新的含義,主要用于簡化State、Getters、Mutations、Actions使用時的代碼。

以上就是vue前端開發(fā)輔助函數(shù)狀態(tài)管理詳解示例的詳細內容,更多關于vue輔助函數(shù)狀態(tài)管理的資料請關注腳本之家其它相關文章!

相關文章

  • vue下載二進制流圖片操作

    vue下載二進制流圖片操作

    這篇文章主要介紹了vue下載二進制流圖片操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • Vue3+Canvas實現(xiàn)坦克大戰(zhàn)游戲(一)

    Vue3+Canvas實現(xiàn)坦克大戰(zhàn)游戲(一)

    這篇文章將利用Vue3和Canvas編寫一個童年經典游戲—坦克大戰(zhàn),文中的示例代碼講解詳細,感興趣的小伙伴快來跟隨小編一起學習一下吧
    2022-03-03
  • Vue3+Element?Plus實現(xiàn)el-table跨行顯示(非腳手架)

    Vue3+Element?Plus實現(xiàn)el-table跨行顯示(非腳手架)

    這篇文章主要介紹了Vue3+Element Plus實現(xiàn)el-table跨行顯示(非腳手架),本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • 解決vue-cli 配置資源引用的絕對路徑問題

    解決vue-cli 配置資源引用的絕對路徑問題

    這篇文章主要介紹了vue-cli 配置資源引用的絕對路徑的問題,本文通過圖文實例相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09
  • Vue生命周期函數(shù)調用詳解

    Vue生命周期函數(shù)調用詳解

    這篇文章主要介紹了Vue生命周期函數(shù)調用詳解,本文將實現(xiàn)Vue生命周期相關代碼的核心邏輯,從源碼層面來理解生命周期,感興趣的小伙伴可以參考一下
    2022-08-08
  • Vue computed計算屬性詳細講解

    Vue computed計算屬性詳細講解

    computed是vue的配置選項,它的值是一個對象,其中可定義多個計算屬性,每個計算屬性就是一個函數(shù),下面這篇文章主要給大家介紹了關于vue中計算屬性computed的詳細講解,需要的朋友可以參考下
    2022-10-10
  • vuex存儲token示例

    vuex存儲token示例

    今天小編就為大家分享一篇vuex存儲token示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 解決VUEX刷新的時候出現(xiàn)數(shù)據(jù)消失

    解決VUEX刷新的時候出現(xiàn)數(shù)據(jù)消失

    這篇文章主要介紹了解決VUEX刷新的時候出現(xiàn)數(shù)據(jù)消失,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Vue項目打包部署到iis服務器的配置方法

    Vue項目打包部署到iis服務器的配置方法

    這篇文章主要介紹了Vue項目打包部署到iis服務器的配置方法,文中通過代碼示例給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • vue.js指令v-for使用及索引獲取

    vue.js指令v-for使用及索引獲取

    這篇文章主要為大家詳細介紹了vue.js中v-for使用及索引獲取,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11

最新評論