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

vuex中的四個map方法的使用小結(jié)

 更新時間:2023年05月31日 11:27:30   作者:小花皮豬  
vuex里面有四個map方法,他們分別可以針對不同的元素進行不同的代碼生成,本文就來詳細的介紹一下vuex中的四個map方法,具有一定的參考價值,感興趣的可以了解一下

vuex里面有四個map方法,他們分別可以針對不同的元素進行不同的代碼生成

這四個map方法都是異曲同工,明白了一個基本上都明白了

1 編寫案例

現(xiàn)在想要展示一段文本,其中里面兩個參數(shù)要存在store的state里面,那么每次獲取都要通過這么一大串代碼獲取,及其復雜且不美觀,vue的風格指南就說過插值語法不要寫的這么復雜

2 計算屬性簡化

當然我們可以可以通過計算屬性簡化,但是計算屬性只支持在當前組件使用

但是可以觀察發(fā)現(xiàn),其實都是讀取的store.state.x里面的數(shù)據(jù),代碼都是一樣的,所以是否有辦法生成或者封裝這些冗余的代碼呢?

vuex的設(shè)計者當然也考慮到了這個問題,下面我們就去使用生成相關(guān)代碼的函數(shù)

3 mapState簡化

想要使用生成相關(guān)代碼的函數(shù),需要先引入vuex,從vuex身上引入mapState

// 引入vuex身上的mapState
import {mapState} from 'vuex'

mapState是一個對象,里面有很多組key,value,它有兩種寫法

寫法1(對象寫法)

  // 借助mapState生成計算屬性,從state中讀取數(shù)據(jù)(對象寫法)
  ...mapState({sum:'sum',address:'address',info:'info'}),

寫法2(數(shù)組寫法)

除了對象寫法,還有更為精簡的數(shù)組寫法

注意,此時一定不能直接寫成對象簡寫形式,應該放到一個數(shù)組里面再進行簡寫形式

每一個key都有兩個用途,一個用途是生成的計算屬性名稱,另外一個是從state里面讀取的屬性名稱

// 借助mapState生成計算屬性,從state中讀取數(shù)據(jù)(數(shù)組寫法)
    ...mapState(['sum','address','info']),

4 mapGetters簡化

mapGetters和mapState的寫法是一樣的,首先需要從vuex里面引用出來

寫法也是分為對象和數(shù)組寫法,和mapState如出一轍

寫法1(對象寫法)

// 借助mapGetters生成計算屬性,從getters中讀取數(shù)據(jù)(對象寫法)
...mapGetters({bigSum:'bigSum'}),

寫法2(數(shù)組寫法)

// 借助mapGetters生成計算屬性,從getters中讀取數(shù)據(jù)(數(shù)組寫法)
 ...mapGetters(['bigSum']),

到此mapState和mapState對于計算屬性的優(yōu)化就結(jié)束了,下面是mapActions和mapMutations優(yōu)化methods

注意觀察,這些代碼也都是很相似的,我們也是可以進行優(yōu)化的

5 mapMutations

首先也是引入vuex中的mapMutations

寫法1(對象寫法)

 // 借助mapMutations生成對應的方法,方法中會調(diào)用commit去聯(lián)系mutations(對象寫法)
 ...mapMutations({increment:'INCREMENT',decrement:'DECREMENT'})

這時候發(fā)現(xiàn)問題

這時候我們需要給事件綁定參數(shù)

這樣就解決了

寫法2(數(shù)組寫法)

// 借助mapMutations生成對應的方法,方法中會調(diào)用commit去聯(lián)系mutations(數(shù)組寫法)
 ...mapMutations(['INCREMENT','DECREMENT']),

6 mapActions

首先還是引入vuex中的 mapActions

// 引入vuex身上的mapState和mapGetters和mapMutations和mapActions
import {mapState,mapGetters,mapMutations,mapActions} from 'vuex'

寫法1(對象寫法)

 // 借助mapActions生成對應的方法,方法中會調(diào)用dispatch去聯(lián)系actions(對象寫法)
 ...mapActions({incrementOdd:'incrementOdd',incrementOdd:'incrementOdd'}),

寫法2(數(shù)組寫法)

// 借助mapActions生成對應的方法,方法中會調(diào)用dispatch去聯(lián)系actions(數(shù)組寫法)
...mapActions(['incrementOdd','incrementWait']),

7 總結(jié)

1 mapState方法: 用于幫助我們映射state中的數(shù)據(jù)為計算屬性

computed: {
    //借助mapState生成計算屬性:sum、school、subject(對象寫法)
     ...mapState({sum:'sum',school:'school',subject:'subject'}),
    //借助mapState生成計算屬性:sum、school、subject(數(shù)組寫法)
    ...mapState(['sum','school','subject']),
},

2 mapGetters方法: 用于幫助我們映射getters中的數(shù)據(jù)為計算屬性

computed: {
    //借助mapGetters生成計算屬性:bigSum(對象寫法)
    ...mapGetters({bigSum:'bigSum'}),
    //借助mapGetters生成計算屬性:bigSum(數(shù)組寫法)
    ...mapGetters(['bigSum'])
},

3 mapActions方法: 用于幫助我們生成與actions對話的方法,即:包含$store.dispatch(xxx)的函數(shù)

methods:{
    //靠mapActions生成:incrementOdd、incrementWait(對象形式)
    ...mapActions({incrementOdd:'jiaOdd',incrementWait:'jiaWait'})
    //靠mapActions生成:incrementOdd、incrementWait(數(shù)組形式)
    ...mapActions(['jiaOdd','jiaWait'])
}

4 mapMutations方法: 用于幫助我們生成與mutations對話的方法,即:包含$store.commit(xxx)的函數(shù)

methods:{
    //靠mapActions生成:increment、decrement(對象形式)
    ...mapMutations({increment:'JIA',decrement:'JIAN'}),
    //靠mapMutations生成:JIA、JIAN(對象形式)
    ...mapMutations(['JIA','JIAN']),
}

備注:mapActions與mapMutations使用時,若需要傳遞參數(shù)需要:在模板中綁定事件時傳遞好參數(shù),否則參數(shù)是事件對象。

到此這篇關(guān)于vuex中的四個map方法的使用小結(jié)的文章就介紹到這了,更多相關(guān)vuex map使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue-cli腳手架引入彈出層layer插件的幾種方法

    vue-cli腳手架引入彈出層layer插件的幾種方法

    layer.js(mobile)是一個小巧方便的彈出層插件,在之前的apicloud項目中被大量使用,但最近對apicloud的IDE、非常不友好的文檔和極低的開發(fā)效率深感厭煩,決定棄用然后轉(zhuǎn)向Vue開發(fā)。這篇文章主要介紹了vue-cli腳手架引入彈出層layer插件的幾種方法,需要的朋友可以參考下
    2019-06-06
  • ElementUI?el-table?樹形數(shù)據(jù)的懶加載的實現(xiàn)

    ElementUI?el-table?樹形數(shù)據(jù)的懶加載的實現(xiàn)

    當面對大量數(shù)據(jù)時,一次性加載所有數(shù)據(jù)可能會導致性能問題,我們可以實現(xiàn)樹形數(shù)據(jù)的懶加載,本文主要介紹了ElementUI?el-table?樹形數(shù)據(jù)的懶加載,感興趣的可以了解一下
    2024-06-06
  • 詳細聊聊vue中組件的props屬性

    詳細聊聊vue中組件的props屬性

    父子組件之間的通信就是props down,events up,父組件通過屬性props向下傳遞數(shù)據(jù)給子組件,子組件通過事件events 給父組件發(fā)送消息,這篇文章主要給大家介紹了關(guān)于vue中組件的props屬性的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • Vue3源碼解析watch函數(shù)實例

    Vue3源碼解析watch函數(shù)實例

    這篇文章主要為大家介紹了Vue3源碼解析watch函數(shù)實例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • 詳解vue-cli項目在IE瀏覽器打開報錯解決方法

    詳解vue-cli項目在IE瀏覽器打開報錯解決方法

    這篇文章主要介紹了詳解vue-cli項目在IE瀏覽器打開報錯解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • 使用vue-cli編寫vue插件的方法

    使用vue-cli編寫vue插件的方法

    本篇文章主要介紹了使用vue-cli編寫vue插件的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • 解決vue中reader.onload讀取文件的異步問題

    解決vue中reader.onload讀取文件的異步問題

    這篇文章主要介紹了解決vue中reader.onload讀取文件的異步問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Vue中禁止編輯的常見方法(以禁止編輯輸入框為例)

    Vue中禁止編輯的常見方法(以禁止編輯輸入框為例)

    在我們開發(fā)項目的時候,有時候我們不希望用戶對我們的頁面進行操作,尤其是輸入框之類的,這篇文章主要給大家介紹了Vue中禁止編輯的常見方法,文中介紹的方法主要以禁止編輯輸入框為例,需要的朋友可以參考下
    2024-02-02
  • IDEA安裝vue插件圖文詳解

    IDEA安裝vue插件圖文詳解

    這篇文章主要為大家詳細介紹了IDEA安裝vue插件圖文,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • vue項目中企業(yè)微信使用js-sdk時config和agentConfig配置方式詳解

    vue項目中企業(yè)微信使用js-sdk時config和agentConfig配置方式詳解

    這篇文章主要介紹了vue項目中企業(yè)微信使用js-sdk時config和agentConfig配置,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12

最新評論