Vue中commit和dispatch區(qū)別及用法辨析(最新)
Vue中commit和dispatch區(qū)別及其用法辨析
在Vue中,commit
和dispatch
是兩個(gè)用于觸發(fā) Vuex store 中的 mutations 和 actions 的方法。
區(qū)別
commit
: 用于觸發(fā) mutations,即直接修改 state 的同步操作。通過(guò)commit
方法可以調(diào)用 store 中的 mutations,并且只能同步地執(zhí)行。使用方式如下:
this.$store.commit('mutationName', payload);
dispatch
: 用于觸發(fā) actions,即執(zhí)行異步操作或者復(fù)雜的邏輯處理。通過(guò)dispatch
方法可以調(diào)用 store 中的 actions,并且可以是異步的。使用方式如下:
this.$store.dispatch('actionName', payload);
辨析:
- 當(dāng)需要修改 state 時(shí),應(yīng)該使用
commit
來(lái)調(diào)用 mutations。 - 當(dāng)需要進(jìn)行異步操作、例如發(fā)送網(wǎng)絡(luò)請(qǐng)求、多個(gè) mutations 之間有依賴關(guān)系等情況,應(yīng)該使用
dispatch
來(lái)調(diào)用 actions。
總結(jié)
commit
用于同步操作,主要用來(lái)修改 state;dispatch
用于異步操作,主要用來(lái)執(zhí)行一系列的操作,包括觸發(fā)多個(gè) mutations 或者其他一些異步操作。
異步操作:從云端拉取信息后才會(huì)執(zhí)行,放在actions中
同步操作:放在mutations中
擴(kuò)展:前端vuex中dispatch的使用
提示:文章寫完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔
前言
Vuex中dispatch的用法!
一、vuex和this.$store.dispatch是什么?
Vuex: Vuex是專為Vue.js應(yīng)用程序開(kāi)發(fā)的狀態(tài)管理模式。它采用集中式存儲(chǔ)管理應(yīng)用的所有組件的狀態(tài),并以相應(yīng)的規(guī)則保證狀態(tài)以一種可預(yù)測(cè)的方式發(fā)生變化。
this.$store.dispatch: this.$store.dispatch是用于觸發(fā)vuex中action的方法。
二、使用方法
#基礎(chǔ)用法this.$store.dispatch('actionName');
#實(shí)際案例(登錄)
this.$store.dispatch('LoginByUsername', this.loginForm).then(() => { this.$router.push({ path: '/' }); //登錄成功之后重定向到首頁(yè) }).catch(err => { this.$message.error(err); //登錄失敗提示錯(cuò)誤 });
action:
LoginByUsername({ commit }, userInfo) { const username = userInfo.username.trim() return new Promise((resolve, reject) => { loginByUsername(username, userInfo.password).then(response => { const data = response.data Cookies.set('Token', response.data.token) //登錄成功后將token存儲(chǔ)在cookie之中 commit('SET_TOKEN', data.token) resolve() }).catch(error => { reject(error) }); }); }
總結(jié)
Vuex是專為Vue.js應(yīng)用程序開(kāi)發(fā)的狀態(tài)管理模式。
this.$store.dispatch是用于觸發(fā)vuex中action的方法。
到此這篇關(guān)于Vue中commit和dispatch區(qū)別及其用法辨析的文章就介紹到這了,更多相關(guān)Vue中commit和dispatch內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- vuex之this.$store.dispatch()與this.$store.commit()的區(qū)別及說(shuō)明
- vuex中store.commit和store.dispatch的區(qū)別及使用方法
- vuex中this.$store.commit和this.$store.dispatch的基本用法實(shí)例
- vuex中store存儲(chǔ)store.commit和store.dispatch的區(qū)別及說(shuō)明
- Vuex中this.$store.commit()和this.$store.dispatch()區(qū)別說(shuō)明
- vuex中store存儲(chǔ)store.commit和store.dispatch的用法
- 在Vuex使用dispatch和commit來(lái)調(diào)用mutations的區(qū)別詳解
相關(guān)文章
Element中Select選擇器的實(shí)現(xiàn)
本文主要介紹了Element中Select選擇器的實(shí)現(xiàn),文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03vue路由權(quán)限和按鈕權(quán)限的實(shí)現(xiàn)示例
本文主要介紹了vue路由權(quán)限和按鈕權(quán)限的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04vue通過(guò)路由實(shí)現(xiàn)頁(yè)面刷新的方法
本篇文章主要介紹了vue通過(guò)路由實(shí)現(xiàn)頁(yè)面刷新的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01Windows系統(tǒng)下使用nginx部署vue2項(xiàng)目的全過(guò)程
nginx是一個(gè)高性能的HTTP和反向代理服務(wù)器,因此常用來(lái)做靜態(tài)資源服務(wù)器和后端的反向代理服務(wù)器,下面這篇文章主要給大家介紹了關(guān)于Windows系統(tǒng)下使用nginx部署vue2項(xiàng)目的相關(guān)資料,需要的朋友可以參考下2023-03-03vue滾動(dòng)條滾動(dòng)到頂部或者底部的方法
這篇文章主要給大家介紹了關(guān)于vue滾動(dòng)條滾動(dòng)到頂部或者底部的相關(guān)資料,文中通過(guò)代碼示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08vue實(shí)現(xiàn)文章評(píng)論和回復(fù)列表
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)文章評(píng)論和回復(fù)列表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04詳解vue 單頁(yè)應(yīng)用(spa)前端路由實(shí)現(xiàn)原理
這篇文章主要介紹了詳解vue 單頁(yè)應(yīng)用(spa)前端路由實(shí)現(xiàn)原理,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04vue-image-crop基于Vue的移動(dòng)端圖片裁剪組件示例
這篇文章主要介紹了vue-image-crop基于Vue的移動(dòng)端圖片裁剪組件示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-08-08