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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決vue this.$forceUpdate() 處理頁面刷新問題(v-for循環(huán)值刷新等)
這篇文章主要介紹了解決vue this.$forceUpdate() 處理頁面刷新問題(v-for循環(huán)值刷新等),解決方法是使用this.$forceUpdate()強(qiáng)制刷新,文章給大家分享了代碼案例,需要的朋友參考下吧2018-07-07
關(guān)于ElementPlus中的表單驗(yàn)證規(guī)則詳解
這篇文章主要介紹了關(guān)于ElementPlus中的表單驗(yàn)證,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06
vue實(shí)現(xiàn)多個(gè)echarts根據(jù)屏幕大小變化而變化實(shí)例
這篇文章主要介紹了vue實(shí)現(xiàn)多個(gè)echarts根據(jù)屏幕大小變化而變化實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07
一步步教你用Vue.js創(chuàng)建一個(gè)組件(附代碼示例)
組件(Component)是Vue.js最強(qiáng)大的功能之一,組件可以擴(kuò)展HTML元素,封裝可重用的代碼,下面這篇文章主要給大家介紹了關(guān)于如何一步步用Vue.js創(chuàng)建一個(gè)組件的相關(guān)資料,需要的朋友可以參考下2022-12-12
Vant彈出列表多選輸入框下拉選擇代碼(可直接復(fù)制使用)
vue項(xiàng)目無論是用element中的Select選擇器,還是使用公司維護(hù)的組件,都可以輕松實(shí)現(xiàn)單選和多選的需求,這篇文章主要給大家介紹了關(guān)于Vant彈出列表多選輸入框下拉選擇的相關(guān)資料,需要的朋友可以參考下2024-01-01
vant遇到van-sidebar數(shù)據(jù)超出不能滑動(dòng)的問題
這篇文章主要介紹了vant遇到van-sidebar數(shù)據(jù)超出不能滑動(dòng)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
vue實(shí)現(xiàn)聊天框自動(dòng)滾動(dòng)的示例代碼
本文主要介紹了vue實(shí)現(xiàn)聊天框自動(dòng)滾動(dòng)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05

