vuex輔助函式和vuex5個屬性

2022-07-02 19:30:18 字數 3253 閱讀 6108

在上篇中,我們可以知道如果想要訪問vuex.store中state中的資料,需要this.$store.state.屬性名。顯然這樣訪問資料寫的**很很不簡潔的,輔助函式就是用來解決這個問題的。

1、輔助函式:

通過輔助函式mapstate、mapactions、mapmutations,把vuex.store中的屬性對映到vue例項身上,這樣在vue例項中就能訪問vuex.store中的屬性了,對於操作vuex.store就很方便了。

state輔助函式為mapstate,actions輔助函式為mapactions,mutations輔助函式為mapmutations。(vuex例項身上有mapstate、mapactions、mapmutations屬性,屬性值都是函式)

2、如何使用輔助函式

在當前元件中引入vuex

通過vuex來呼叫輔助函式

3、輔助函式如何去對映vuex.store中的屬性

1、mapstate:把state屬性對映到computed身上

computed:)

}

屬性1:state:    

用來儲存公共的狀態 在state中的資料都是響應式的。

響應式原因:state裡面有乙個getters、setters方法;data中的資料也是響應式的,因為裡面也有getters和setters方法

輔助函式

mapstate

1、在computed屬性中來接收state中的資料 接收方式有2種(陣列和物件,推薦物件)

computed:vuex.mapstate(["屬性"]) 把state中的資料通過mapstate對映到computed元件身上

computed:vuex.mapstate()

2、如果自身元件也需要使用computed的話,通過解構賦值去解構出來

computed:)

}

2、mapacions:把actions裡面的方法對映到methods中

methods:)

}//直接代用add和change方法就行,不過要記得在actions裡面做完資料業務邏輯的操作

之前我們還需要這樣寫一大串函式呼叫,

// methods: ,

// handleadd()

// }

屬性2:actions:     

actions裡面的函式主要用來處理非同步的函式以及一些業務邏輯,每乙個函式裡面都有乙個形參 這個形參是乙個物件

裡面有乙個commit方法,這個方法用來觸發mutations裡面的方法

輔助函式

mapactions

使用方式

methods:vuex.mapactions([""])

methods:)

}

3、mapmutations:把mutations裡面的方法對映到methods中只是做簡單的資料修改(例如n++),它沒有涉及到資料的處理,沒有用到業務邏輯或者非同步函式,可以直接呼叫mutations裡的方法修改資料。

methods:)

}

屬性3:mutations:    

mutations裡面的函式主要用來修改state中的資料。mutations裡面的所以方法都會有2個引數 乙個是store中的state

另外乙個是需要傳遞的引數

輔助函式

mapmutations

使用方式

methods:vuex.mapmutations([""])

methods:)

}

理解state、actions、mutations,可以參考mvc框架。state可以比喻成乙個資料庫,知識它是響應式的,重新整理頁面資料就會改變;actions比喻成controller層,做資料的業務邏輯;mutations比喻成model層,做資料的增刪改查操作。

4、mapgetters:把getters屬性對映到computed身上

computed:)

}

屬性4:getters:計算屬性

getters類似於元件裡面computed同時也是監聽屬性的變化,當state中的屬性發生改變的時候就會

觸發getters裡面的方法。getters裡面的每乙個方法中都會有乙個引數 state

使用方式

this

.$store.getters.方法名稱

輔助函式

mapgetters

mapgetters使用在元件的computed中

1、vuex.mapgetters(["方法名稱"])

vuex.mapgetters()

5、modules屬性:  模組 (和輔助函式沒關係了)

把公共的狀態按照模組進行劃分

1、每個模組都相當於乙個小型的vuex

2、每個模組裡面都會有state getters actions mutations

3、切記在匯出模組的時候 加乙個 namespaced:true 主要的作用是將每個模組都有獨立命名空間

4、namespace:true

在多人協作開發的時候,由於個人單詞量有限,可能子模組和主模組中的函式名字會相同,這樣嗲用函式的時候,相同名字的函式都會被呼叫,就會發生問題。

為了解決這個問題,上面提到了匯出模組的時候要加namespace:true.

那麼怎麼呼叫子模組中的函式呢?假如我的子模組名字為todo.js。  函式名字就改成todo/函式名字。

為什麼這樣寫呼叫,輸出模組後的store例項

也可以看到模組化後,store例項的state屬性的訪問改變了,this.$store.state.todo.inputval

可以簡單總結一下輔助函式通過vuex使用,比喻成對映關係為: mapstate/mapgettes--->computed  ;  mapacions/mapmutations---->methods   

Vuex5個狀態詳解

本篇文章適合對vuecli和vuex稍微有一定了解的小夥伴,我將 拆分解釋和整合,希望可以幫助到你 安裝npm i s vuex使用 1.腳手架src中新建store資料夾,再建乙個index.js入口檔案 import vue from vue 匯入vue import vuex from vue...

vuex輔助函式的使用

vuex是vue的公共狀態管理,vuex核心的概念有五個,state,mutation,action,getter,module.1.state 所有的資料都儲存在state中 state是乙個物件 2 mutations 可以直接操作state中的資料 3 actions 只能呼叫mutation...

Vuex中的輔助函式

上篇文章我們講了vuex的使用,本來想把是想把vuex內容寫一塊,後來覺得那樣會太亂不利於入門的同學消化理解,vuex的使用問題請看上篇,本篇只講輔助函式。一 元件訪問state 從 vuex 中匯入 mapstate 函式 import from vuex 對映為當前元件的computed計算屬性...