由于工作原因最近一段时间没有更新,今天我们就在深入的谈一谈
一、比如说我现在有这么个需求,当 count < 5
的时候,就停止 count--
。这就需要用到 actions
定义要执行的动作,如流程的判断、异步请求
在 store.js 内的 actions
中
// 定义 actions ,要执行的动作,如流程的判断、异步请求const actions ={ increment({commit,state}){ commit('increment') }, decrement({ commit, state }) { // **通过动作改变的数据,在此处来做判断是否提交** if (state.count > 5) { commit('decrement') } } }
运行项目
二、通过 模拟异步请求
1. 先在 App.vue 中定义好事件
//异步请求事件{ {count}}
2. 在 store.js 内的 actions
中添加 事件
// 定义 actions ,要执行的动作,如流程的判断、异步请求const actions ={ increment({commit,state}){ commit('increment') }, decrement({ commit, state }) { // **通过动作改变的数据,在此处来做判断是否提交** if (state.count > 5) { commit('decrement') } }, incrementAsync({commit,state}){ // 模拟异步操作 var a = new Promise((resolve,reject) => { setTimeout(() => { resolve(); }, 3000); }) // 3 秒之后提交一次 increment ,也就是执行一次 increment a.then(() => { commit('increment') }).catch(() => { console.log('异步操作失败'); }) } }
运行项目
三、获取数据状态
假如我们需要知道数据的奇偶数,那么就需要在 中来判断。
getters 中可以获取经过处理后的数据,从而来判断状态
在 store.js 的 getters
中加入判断奇偶数的方法
var getters={ count(state){ return state.count }, EvenOrOdd(state){ return state.count%2==0 ? '偶数' : '奇数' } }
在 App.vue 中加入
{ {count}}
{ {EvenOrOdd}}