1. 程式人生 > 程式設計 >vuex中store儲存store.commit和store.dispatch的用法

vuex中store儲存store.commit和store.dispatch的用法

程式碼示例:

this.$store.commit('loginStatus',1);

this.$store.dispatch('isLogin',true);

規範的使用方式:

// 以載荷形式
store.commit('increment',{
 amount: 10 //這是額外的引數
})

// 或者使用物件風格的提交方式
store.commit({
 type: 'increment',amount: 10 //這是額外的引數
})

主要區別:

dispatch:含有非同步操作,資料提交至 actions ,可用於向後臺提交資料

寫法示例:

this.$store.dispatch('isLogin',true);

commit:同步操作,資料提交至 mutations ,可用於登入成功後讀取使用者資訊寫到快取裡

寫法示例:

this.$store.commit('loginStatus',1);

兩者都可以以載荷形式或者物件風格的方式進行提交

補充知識:如何獲取vuex的action的返回值(axios請求為例)

因為之前老師有講過將vuex的封裝。

今天就想嘗試寫一下,然後就封裝了。

但是我想要在vue元件裡面獲取vuex的action的返回值

這裡我用的dispatch呼叫 如圖

vuex中store儲存store.commit和store.dispatch的用法

我這裡使用的new Promise的方法

vuex中store儲存store.commit和store.dispatch的用法

呼叫getlunbolist的時候返回一個new Promise,把需要的值用resolve帶出

在元件就可以用then的方法取出來使用

vuex中store儲存store.commit和store.dispatch的用法

我只是一個小小白,我知道我的表述很生硬而且可能還不準備,但是意思就是大概這個意思。而且會堅持把我覺得有收穫的內容下來的,希望以後成大佬了能自己來完善,當然大佬們看到問題了可以多多指點一下小弟。

以上這篇vuex中store儲存store.commit和store.dispatch的用法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。