Vuex核心就是 store,里面包括:
(1)state(数据)用来存放数据源
(2)getters(数据方法封装) 修改封装数据方便快捷方法
(3)actions(异步事件)用 dispatch 调用 ,注意:封装时候需要commit结合
(4)mutations(同步执行方法)更新state数据源方法 ,用 commit 调用
(5)modules(分模块)大型项目必备
下面看看简单示例,简单通俗易懂:
import Vuex from 'vuex'
const moduleStoreCart = {
state:{
cart:0,
cartEnglish:10,
cartExpire:1
},
mutations:{
carAdd(state,data){
state.cart += data.count
}
},
getters:{
cartExpire:(state)=>{
return function(data){
return state.cartExpire+data
}
},
cartAll:(state,getters)=>{
console.log(getters);
return state.cart + state.cartEnglish
}
},
actions:{
apiUpdate(context){
return new Promise((resolve, reject) => {
let status = 0;
context.commit("carAdd",{count:1})
if(status){
reject() //成功
}else{
resolve() //失败
}
})
}
}
}
const moduleStoreUser = {
state:{
user:{token:"666",id:"123"}
},
mutations:{
},
getters:{
},
actions:{
}
}
const store = new Vuex.Store({
state:{
public:{
data:"公共"
}
},
mutations:{
},
getters:{
},
actions:{
},
modules:{
cart:moduleStoreCart,
user:moduleStoreUser
}
})
export default store;