export default { namespaced: true, //命名空间。会在控制台的$store里面的mutations里面多出来一个cityModules/changeCity state:{ //这个state只属于当前的城市模块 cityId:'001', cityName:'北京' }, mutations:{ //也可以在这里使用mutation changeCity(state,payload){ state.cityName=payload; } }, actions:{ //actions也可以 changeCityAsync(context,name){ console.log(context); setTimeout(() => { context.commit('changeCity',name) //触发自己城市模块的mutations,即changeCity }, 2000); }, //context实例 someAction({commit,getters,rootGetters,dispatch},name){ //把commit解构出来,在setTimeout异步里面直接使用。按需解构 setTimeout(() => { commit('changeCity',name) //直接使用,不需要在前面加context. }, 2000); //访问局部的getters getters.getCity; //需要解构getters。随便访问一个局部的getCity试试 //访问全局的getters rootGetters.showCount; //需要解构rootGetters。随便访问一个全部的showCount试试 //使用dispatch触发同模块里面的action dispatch('changeCityAsync','内蒙古') //使用dispatch触发全局模块里面的action dispatch('addAsync',null,{root:true}) } }, getters:{ //getters也可以 getCity(state){ return state.cityName+',欢迎你'; }, //module访问全局数据 someGetter (state,getters,rootState,rootGetters){ // state.cityName // getters.someOtherGetter // rootGetters.someOtherGetter console.log(state,getters,rootState,rootGetters); } } }