vuex简单梳理4,actions的用法和其辅助函数
actions用来调用异步的方法,再通过触发Mutations来修改state
现在虽然在Mutations中调用异步方法也不会报错了,但是也要遵守vuex中的规则,也为日后维护的人员增加代码的可读性。
const state = { s:0, }
const mutations = { SET_S(state,num){ state.s = num; } }
const actions = { sum({commit},params){//默认的参数commit,通过commit来调用定义在Mutations中的方法 setTimeout(()=>{ console.log(params.a-0,params.a) commit("SET_S",(params.a - 0 )+ (params.b - 0)) },3000) }, }
组件中同dispatch调用actions中的方法
<div>
<h3>actions</h3>
<input type="text" ref="a">+
<input type="text" ref="b">
<input type="button" @click="$store.dispatch('sum',{a:$refs.a.value,b:$refs.b.value})" value="=">//通过dispatch调用
<input type="button" @click="sum({a:$refs.a.value,b:$refs.b.value})" value="=">//辅助函数
{{$store.state.s}}
</div>
其辅助函数用法与之前类型
import {mapActions} from "vuex";
methods:{...mapActions(["sum",'test']),
...{
set(num){
this.$store.dispatch('test',num)
console.log(this.$store,'vuex状态')
}
}
}

这里多说一句,当我在实际项目中通过封装好的axios或者直接使用promise,在异步中再调用异步时就会 体会到actions的好处
vuex的梳理告一段落
龙丘居士亦可怜,谈空说有夜不眠。
忽闻河东狮子吼,拄杖落手心茫然。
多有画面感

浙公网安备 33010602011771号