当前位置: 首页 > Web前端 > vue.js

vuex核心内容及关键细节总结

时间:2023-04-01 00:46:51 vue.js

文章目录https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987。..https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...https://xueqiu.com/4437336987...vuex介绍vuex状态管理vuex的几个核心内容statemodulemutationsmodulemutationshowpassingparametersmutationssubmissionstylemutationsresponserulemutationsConstanttype详解编程mutations同步函数getters模块Actions模块module模块详解代码store/index.jsHelloWorld.vueApp.vuemutations-types.jsvuex介绍vuex状态管理vuex几个核心内容store文件夹index.js使用vuex的步骤state模块状态是保存一些变量,所有vue组件可以共享`//保存状态state:{counter:1000,students:[{id:110,name:'lizhi',age:18},{id:111,name:'theshy',age:22},{id:112,name:'zouxinxin',age:38},],info:{name:"caixukun",hobbis:['rap','basketball'],age:22}},`*1*2*3*4*5*6*7*8*9*10*11*12*13*14mutations如何传递模块突变传参mutations提交样式mutations响应规则mutationsconstanttypedetailsprogrammingmutationssynchronousfunctiongettersmoduleActionsmodulemodulemoduledetailedcodestore/index.js`importVuefrom'vue'importVuexfrom'vuex'import{INCREMENT}from'./mutations-types'//1、安装插件Vue.use(Vuex)//2、创建并导出对象//2.1创建模块对象constmoduluA={state:{name:'Sutter'},mutations:{UpdateName(state,payload){state.name=payload}},actions:{aUpdateName(context){setTimeout(()=>{context.commit('UpdateName','wangf')},1000)}},getters:{fullname(state){returnstate.name+'11111'},fullName(state,getters){returngetters.fullname+'2222'},newFullname(state,getters,rootState){returngetters.fullName+rootState.info.name}}}exportdefaultnewVuex.Store({//保存状态state:{counter:1000,students:[{id:110,name:'lizhi',age:18},{id:111,name:'theshy',age:22},{id:112,name:'zouxinxin',age:38},],信息:{不适用me:"caixukun",hobbis:['rap','basketball'],age:22}},//突变转换mutations:{//方法默认参数state[INCREMENT](state){state.counter++},decreament(state){state.counter--},increCount(state,payload){console.log(payload);state.counter+=payload.count},addStudent(state,student){state.students.push(student)},updateInfo(state){Vue.set(state.info,'address','beijing')//addpropertyVue.delete(state.info,'age')//deleteproperty//代码错误,这里不能异步操作//setTimeout(()=>{//state.info.name=Sutter//},1000)state.info.name="Sutter"},},actions:{//上下文编程翻译//aUpdateInfo(context,payload){//setTimeout(()=>{//context.commit('updateInfo')////console.log(payload);//console.log(payload.param);//payload.successed()//},1000)//},aUpdateInfo(context,payload){returnnewPromise((resolve,reject)=>{setTimeout(()=>{context.commit('updateInfo')console.log(payload);resolve("action.params")},1000)})}},getters:{powerCounter(state){returnstate.counter*state.counter},moreTwenty(state,getters){returnstate.students.filter(s=>{returns.age>getters.moreAge})},moreTwentyLen(state,getters){returngetters.moreTwenty.length},moreAge(state){//returnfunction(age){//returnstate.students.filter(s=>{//returns.age>age//})//}returnage=>{returnstate.students.filter(s=>s.age>age)}}},modules:{a:moduluA}})`*1*2*3*4*5*6*7*8*9*10*11*12*13*14*15*16*17*18*19*20*21*22*23*24*25*26*27*28*29*30*31*32*33*34*35*36*37*38*39*40*41*42*43*44*45*46*47*48*49*50*51*52*53*54*55*56*57*58*59*60*61*62*63*64*65*66*67*68*69*70*71*72*73*74*75*76*77*78*79*80*81*82*83*84*85*86*87*88*89*90*91*92*93*94*95*96*97*98*99*100*101*102*103*104*105*106*107*108*109*110*111*112*113*114*115*116*117*118*119*120*121*122*123*124*125*126*127*128*129*130*131*132*133*134*135*136*137HelloWorld.vue``*1*2*3*4*5*6*7*8*9*10*11*12*13*14*15*16*17*18*19*20*21*22*23*24*25*26*27*28*29*30*31*32*33*34*35*36*37*38*39*40*41*42*43*44*45*46*47*48*49*50*51*52*53*54*55*56*57*58*59*60*61*62*63*64*65*66*67*68*69*70*71*72*73*74*75*76*77*78*79*80*81*82*83*84*85*86*87*88*89*90*91*92*93*94*95*96*97*98*99*100*101*102*103*104*105*106*107*108*109*110App.vue