什么是getters
在Store仓库里,state就是用来存放数据,若是对数据进行处理输出,比如数据要过滤,一般我们可以写到computed中。但是如果很多组件都使用这个过滤后的数据,比如饼状图组件和曲线图组件,我们是否可以把这个数据抽提出来共享?这就是getters存在的意义。我们可以认为,【getters】是store的计算属性。
vuex commit保存数据技巧
vuex 单向数据流,推荐的commit 改变state数据,数据流向永远都是一个方向,下游是没有权利改变数据的,所以需要数据发放中心同一级的方法来改变数据,commit 解决state所有保存的问题
Actions如何定义的
- Action 可以提交mutation方法,通过mutation来改变state
- Action 可以执行任意的同步和异步操作
- Action 类似于 mutation,不同在于Action 提交的是 mutation,而不是直接变更状态
mutations:类似于事件,每个 mutation 都有一个字符串的事件类型 (type)和 一个回调函数 (handler)。这个回调函数就是我们实际进行状态更改的地方,并且它会接受 state 作为第一个参数
如何使用 state
子组件能通过 this.$store 访问到
this.$store.state.test
如何使用 mutations
子组件能通过 this.$store.commit 访问到
mutations通过payload来接收commit传过来的参数
this.$store.commit('changetest',xxx)
它会去把 changetest 提交到 mutation 执行 ,第二个是载荷(可以理解为参数),大多数载荷应该是一个对象,这样可以包含多个字段并且记录的 mutation 会更易读
如何使用 actions
子组件能通过 this.$store.dispatch 访问到
this.$store.getters.test2
它会去把 changetest 分发到 actions 在通过 actions 提交到 mutation 执行
如何使用 getters
子组件能通过 this.$store.getters 访问到
this.$store.getters.test2