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

