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

vue2-vuex

时间:2023-03-31 18:01:49 vue.js

vuexvuex是专门为vue.js应用开发的状态管理模式。在vuex中,有五个默认的基础对象:state:存储状态(变量)getters:获取数据前的重新编译,可以理解为state的计算属性。我们在组件中使用$sotre.getters.fun()突变:修改状态,并且是同步的。在组件中使用$store.commit('',params)。这类似于我们组件中的自定义事件。动作:异步操作。组件中使用的是$store.dispath('')modules:store的子模块,用于开发大型项目,方便状态管理。这里就不解释了,同上。安装使用installvuexnpminstallvuex--savevuex调用创建一个新的store/store.js文件,importvueximportVuefrom'vue'importVuexfrom'vuex'Vue.use(Vuex)conststate={count:1}constmutations={increment(state){state.count++}}exportdefaultnewVuex.Store({state,mutations})main.jsimportstoreimportstorefrom'./store/store'newVue({el:'#app',router,store,components:{App},template:''})pagecallcountstate{{$store.state.count}}使用mutations和actions继续操作storestateaddmethods:{add(){this.$store.commit('increment')//普通提交包}}mutations携带参数addmethods:{add(count){//this.$store.commit('increment',count)this.$store.commit({//对象提交封装类型:'increment',count})}}store.jsFile:constmutations={increment(state,count){state.counter+=count}}//对象提交计数变化payloadincr元素(状态){state.counter+=payload。count}actions异步操作constactions={//异步操作acincrement(context){state.count++}使用dispath触发this.$store.dispatch('acincrement')gettersconstgetters={getterCount(state,n=0){return(state.count+=n)}}exportdefaultnewVuex.Store({state,mutations,actions,getters})属性调用:{{$store.getters.getterCount}}getters传参:{$store.getters.getterid(10)}}getterid(state){returnage=>{return//待判断值}}