vuex直接修改state、commit和dispatch修改state的用法及區(qū)別說明
更新時間:2024年08月31日 09:52:33 作者:是大林的林吖
這篇文章主要介紹了vuex直接修改state、commit和dispatch修改state的用法及區(qū)別說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
vuex直接修改state、commit和dispatch修改state的區(qū)別
1)可以直接使用 this.$store.state.變量 = xxx;
2)通過commit修改state
import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) export default new Vuex.Store({ state: { name:'' }, mutations: {//類似method SET_NAME(state, name) { state.name = name; } }
使用:commit提交觸發(fā)mutations里方法
this.$store.commit("SET_NAME", 'xlt');
3)通過dispatch修改state
import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) export default new Vuex.Store({ state: { name:'' }, mutations: {//類似method SET_NAME(state, name) { state.name = name; } }, actions: {//類似method set_name({ commit }, name) { commit('SET_NAME', name) } }
使用:dispatch提交觸發(fā)actions里方法
this.$store.dispatch("set_name", 'xlt');
區(qū)別
- commit方式是同步操作
- dispatch方式是異步操作
總結
都可以修改state里的變量,并且是響應式的(能觸發(fā)視圖更新)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
淺談vue中get請求解決傳輸數(shù)據(jù)是數(shù)組格式的問題
這篇文章主要介紹了淺談vue中get請求解決傳輸數(shù)據(jù)是數(shù)組格式的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08