查漏补缺——说说VueX里的dispatch方法
问题
如题所示
答案
相关源码:
created(){
this.getSocial();
this.$store.dispatch('initComputeTime');
}
Vue进阶(二十四):vuex 之 commit 和dispatch
这里的dispatch方法是一个异步的方法,通过它可以将initComputeTime分发到VueX的actions属性中,在actions属性的内容是这样的:
const actions = {
initComputeTime: ({commit}) => {
commit('GET_RUNTIME_INTERVAL');
},
}
这里的commit函数会触发GET_RUNTIME_INTERVAL这个函数的执行:
const mutations = {
GET_RUNTIME_INTERVAL: (state) => {
if (!timer || !state.runTimeInterval) {
clearInterval(timer)
timer = setInterval(() => {
state.runTimeInterval = getTimeInterval(runAt);
}, 1000);
}
}
}
GET_RUNTIME_INTERVAL函数的参数是state,然后就在这个函数里对state状态属性进行修改。