stateandchangesexportdefaultnewVuex.Store({state:{count:0},mutations:{add(state){state.count++}}})派生状态exportdefaultnewVuex.Store({getters:{todoCount(state){returnstate.todos.filter(todo=>!todo.completed).length}}})异步操作exportdefaultnewVuex.Store({actions:{someAction(context){//dosomethingcontext.state;//访问状态context.commit()//提交更改context.dispatch();//调度操作}}})简化方法exportdefault{computed:{...mapState(['isLogin']),...mapGetters(['loginState'])},方法:{...mapActions(['login'])}}从'vue'导入Vue从'vuex'导入VuexVue.use(Vuex)constcart={state:{list:[]},mutations:{addCart(state,good){constret=state.list.find(v=>v.id===good.id)if(ret){ret.count+=1}else{state.list.push({good,count:1,active:true})}}}exportdefaultnewVuex.Store({state:{isLogin:false},getters:{loginState(state){返回state.isLogin?'Welcomebackas':'Visitor'}},mutations:{login(state){state.isLogin=true}},actions:{//{commit}是结构赋值requestLogin(contx,payload){console.log(contx)console.log(payload)//异步操作,告诉外界是否成功returnnewPromise(resolve=>{setTimeout(()=>{contxt.commit('login')resolve(true)},1000)})}},modules:{car??t}})vueximplementsYStore.jsimportVuefrom'vue'classYStore{constructor(options){this.state=options.statethis.mutations=options.mutationsthis.actions=options.actions//借用Vue自带的数据响应机制this.vm=newVue({data:{state:this.state}})}commit(type,payload){constmutation=this.mutations[type]mutation(this.state,payload)}dispatch(type,payload){constaction=this.动作[类型]constctx={提交:这个。提交,状态:这个。状态,调度ch:this.dispatch}returnaction(ctx,payload)}}exportdefaultnewYStore({state:{count:1},mutations:{add(state){state.count++}}})用于组件
