vuex新手進(jìn)階篇之a(chǎn)ctions的使用方法
緊接上篇文章,本篇文章講vuex ,如何去改變state ,actions的使用,我依然使用了vuex的modules
1.設(shè)置actions事件
index.js

dict.js

2.在組件中去分發(fā)actions
<template>
<div>
<div>
改變vuex index.js 下的state
<div>
{{ $store.state.userInfo.name + "---" + $store.state.userInfo.age }}
</div>
<div>
<button @click="changeUserInfo">修改方式1</button>
</div>
<div>
<button @click="changeUserInfo2">修改方式2</button>
</div>
</div>
--------------------------------------------------
<div>
改變vuex index.js modules下的dict 下的state
<div>
{{ $store.state.dict.taskTypeDict }}
</div>
<div>
<button @click="changeDict">修改方式1</button>
</div>
<div>
<button @click="changeDict2">修改方式2</button>
</div>
</div>
</div>
</template>
<script>
import { mapActions } from "vuex"; //方式二 1.首先引入
export default {
methods: {
// 方式一,dispatch分發(fā)事件
changeUserInfo() {
this.$store.dispatch("getUserInfo");
},
// 方式二
...mapActions(["getUserInfo2"]), //2.使用mapActions函數(shù)將組件的 methods 映射為 store.dispatch 調(diào)用
changeUserInfo2() {
this.getUserInfo2(); //3.調(diào)用
},
// -------------------------------------------------------------------------------------------
//因?yàn)槲覀冊趍odules下開啟了命名空間,所以我們在調(diào)用dict下的Actions時(shí),需在前方加上空間名字
changeDict() {
this.$store.dispatch("dict/getTaskTypeDict");
},
//因?yàn)槲覀冮_辟了命名空間,故需要重寫一個(gè)方法名,進(jìn)行承接映射,注意此處不再是數(shù)組,而是一個(gè)對(duì)象
...mapActions({ getDicts: "dict/getTaskTypeDict2" }),
changeDict2() {
this.getDicts();
},
},
};
</script>3.注意點(diǎn)
action 類似于 mutation,不同在于
1.action 提交的是 mutation事件,而不是直接去改變state的狀態(tài)值,改變state的值只有通過mutation
2.action 可以包含任意異步操作
actions的細(xì)節(jié)補(bǔ)充
1.參數(shù)問題
2.context的其他屬性
3.另外一種提交風(fēng)格(見上以對(duì)象的形式進(jìn)行分發(fā))
//store的index.js中
actions: {
// 放函數(shù)
// 1.參數(shù)問題
incrementAction(context, payload) {
console.log(payload)
setTimeout(() => {
context.commit('increment')
}, 1000);
},
// 2.context的其他屬性
decrementAction({ commit, dispatch, state, rootState, getters, rootGetters }) {
commit("decrement")
}
}
總結(jié)
到此這篇關(guān)于vuex新手進(jìn)階篇之a(chǎn)ctions使用的文章就介紹到這了,更多相關(guān)vuex actions的使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解vue后臺(tái)系統(tǒng)登錄態(tài)管理
這篇文章主要介紹了vue后臺(tái)系統(tǒng)登錄管理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
Vue中定義src在img標(biāo)簽使用時(shí)加載不出來的解決
這篇文章主要介紹了Vue中定義src在img標(biāo)簽使用時(shí)加載不出來的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
Vue使用watch同時(shí)監(jiān)聽多個(gè)值的實(shí)現(xiàn)方法示例
這篇文章主要為大家介紹了Vue中使用watch同時(shí)監(jiān)聽多個(gè)值的實(shí)現(xiàn)方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
element ui表格實(shí)現(xiàn)下拉篩選功能
這篇文章主要為大家詳細(xì)介紹了element ui表格實(shí)現(xiàn)下拉篩選功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11
Vue Cli 3項(xiàng)目使用融云IM實(shí)現(xiàn)聊天功能的方法
這篇文章主要介紹了Vue Cli 3項(xiàng)目 使用融云IM實(shí)現(xiàn)聊天功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04
vue2.0移動(dòng)端滑動(dòng)事件vue-touch的實(shí)例代碼
這篇文章主要介紹了vue2.0移動(dòng)端滑動(dòng)事件vue-touch的實(shí)例代碼,需要的朋友可以參考下2018-11-11

