当前位置: 首页 > Web前端 > HTML5

前端实训-中级阶段(41)-vue2.x状态管理vuex

时间:2023-04-04 23:33:17 HTML5

最基础的前端就是HTML+CSS+Javascript。掌握这三项技术算是入门,但也只是入门而已。现在前端开发的定义远不止于此。前端小课堂(HTML/CSS/JS),本着提高技术水平,夯实基础知识的中心思想,开课(每周四)。Vuex是专门为Vue.js应用程序开发的状态管理模式。它使用集中存储来管理应用程序所有组件的状态,并使用相应的规则来确保状态以可预测的方式变化。State和datacenter这五个核心模块在Vue中可以理解为数据。只是为了保持数据流,需要使用store.commit('increment')进行修改(状态在Mutation内部修改),可以更清晰的跟踪状态变化。获取的时候可以使用store.state.count,this.$store.state.count,mapStatemapState可以接收对象和数组,可以直接放在computed:mapState({})上,也可以使用展开运算符computed:{localComputed(){},...mapState({})}objectformmapState({//箭头函数可以让代码更简洁count:state=>state.count,//传递字符串参数'count'相当于`state=>state.count`countAlias:'count',//为了能够使用`this`获取本地状态,必须使用常规函数countPlusLocalState(state){returnstate.count+this.localCount}})数组形式mapState([//Mapthis.counttostore.state.count'count'])getter,可以理解为Vue的计算属性,返回值也会根据到它的依赖项。只有当它的依赖值改变时才会重新计算。获取时,可以使用store.getters.count,this.$store.getters.count,mapStatemapGetters简单映射...mapGetters(['doneTodosCount','anotherGetter',])映射出另一个名字...mapGetters({doneCount:'doneTodosCount'})Mutation可以理解为methods,也可以理解为setState,但是mutation必须是一个同步函数,根据定义是用来同步修改状态的。store.commit('increment')不传内容增量(state,payload){payload==undefined}store.commit('increment',1)传值增量(state,payload){payload==1}store.commit('increment',{n:1})传对象(推荐)increment(state,payload){payload=={n:1}}(我只是描述内容是什么,如果要测试,你可以使用console.log)。..mapMutations(['increment'])...mapMutations({add:'increment'})将this.add()映射到this.$store.commit('increment')ActionAction提交一个mutation,它是不是直接改变状态。动作可以包含任意异步操作。在vue中使用mapActions进行快捷映射,或者不映射直接使用store.dispatch('increment')。dispatch会返回一个Promise,这样我们也可以愉快的监听异步执行是否完成。ModuleVuex允许我们将商店拆分为模块。每个模块都有自己的state、mutation、action、getter,甚至嵌套的子模块——从上到下以同样的方式切分:constmoduleA={namespaced:true,//通过namespaced打开命名空间,默认next,模块内的动作、突变和吸气剂在**全局命名空间**中注册——这使多个模块能够响应相同的突变或动作。状态:()=>({...}),突变:{...},动作:{...},吸气剂:{...}}constmoduleB={state:()=>({...}),mutations:{...},actions:{...}}conststore=newVuex.Store({modules:{a:moduleA,b:moduleB}})store.state.a//->moduleAstatusstore.state.b//->moduleBstatus微信公众号:前端linong参考前端培训目录,前端培训计划,前端培训计划