import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    //用于存储应用程序的状态数据
    count: 10,
    price: 20
  },
  //类似一种计算属性  用于一些逻辑运算操作
  getters: {
    amount(state){
      return state.count * state.price
    }
  },
  //用于修改state当中的数据  同步操作
  mutations: {
    add(state){
      state.price ++
    }
  },
  //用于处理异步操作或者是比较复杂的逻辑操作 并且提交mutations来修改state值
  actions: {
    reduce({commit}){
      setTimeout(()=>{
        commit('add')
      },1500)
    }
  },
  //将整个store 分割成多个模块  每个模块都有自己的state,getters,mutations,actions
  modules: {
  }
})
