1.什么是mutations?
上一篇文章說的getters
是為了初步獲取和簡單處理state
里面的數據(這里的簡單處理不能改變state里面的數據),Vue
的視圖是由數據驅動的,也就是說state
里面的數據是動態變化的,那么怎么改變呢,切記在Vuex
中store
數據改變的唯一方法就是mutation
!
通俗的理解mutations
,里面裝著一些改變數據方法的集合,這是Veux
設計很重要的一點,就是把處理數據邏輯方法全部放在mutations
里面,使得數據和視圖分離。
2.怎么用mutations?
mutation結構:每一個mutation
都有一個字符串類型的事件類型(type
)和回調函數(handler
),也可以理解為{type:handler()},
這和訂閱發布有點類似。先注冊事件,當觸發響應類型的時候調用handker()
,調用type
的時候需要用到store.commit
方法。
載荷(payload):簡單的理解就是往handler(stage)
中傳參handler(stage,pryload)
;一般是個對象。
commit:提交可以在組件中使用 this.$store.commit('xxx')
提交 mutation
,或者使用 mapMutations
輔助函數將組件中的 methods
映射為 store.commit
調用(需要在根節點注入 store
)。
3.源碼分析
registerMutation
:初始化mutation
commit
:調用mutation
subscribers
:訂閱store
的mutation
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com