VUEX 的核心概念 1 、State (常用);2、Getters ;3、Mutations(常用);4、Actions ;5、Modules; 1。State是唯一的数据源,单一的状态树 const Couter={ template:`<div>{{count}}</div>`, computed:{ count(){ return this.$store.state.count } } } 2。通过Getters可以派生出新的状态 如: const store=new Vuex.Store({ state:{ todos:[ { id:1,text:'...',done:true }, { id:2,text:'...',done:false } ] }, getters:{ doneTodos: srtate =>{ return state.todos.filter(todo=>todo.done) } } }) 3。更改Vuex的store中的状态的唯一方法是提交mutation const store=new Vuex.Store({ state:{ count:1 }, mutations:{ increment(state){ //改变状态 state.count++ } } }) //调用 store.commit('increment') 4。Action提交的是mutation,而不是直接改变状态,Action可以包含任意的异步操作 const store=new Vuex.Store({ state:{ count:0 }, mutations:{ increment(state){ state.count++ } }, actions:{ increment(context){ context.commit('increment') } } }) 5。面对复杂的应用程序,当管理的状态比较多时,我们需要将Vuex的store对象分割成模块(modules) const moduleA={ state:{ ...}, mutations:{ ...}, actions:{ ...}, getters:{ ...} } const moduleB={ state:{ ...}, mutations:{ ...}, actions:{ ...} } const stote=new Vuex.Store({ modules:{ a:moduleA, b:moduleB } }) 项目结构 |——index.html |——main.js |——api |_ ... //抽取出api请求 |——components |-App.vue |_ ... |——store |-index.js //我们组装模块并导出store的地方 |-actions.js //根级别的actions |-mutations.js //根级别的mutations |_modules |-cart.js ///购物车模块 |_products.js ///产品模块