特点
- Vuex 的状态存储是响应式的。当 Vue 组件从 store 中读取状态的时候,若 store 中的状态发生变化,那么相应的组件也会相应地得到高效更新
- 改变 store 中的状态的唯一途径就是显式地提交 (commit) mutation
State
存放共享数据的
Mutation
- 对State数据进行操作的
- 与事件类似(一个字符串的
事件类型
+回调函数
)
//提交方法
store.commit('事件类型')
- 提交载荷(Payload)
大多数情况载荷是一个对象
// ...
mutations: {
increment (state, payload) {
state.count += payload.amount
}
}
store.commit('increment', {
amount: 10
})
Getter
类似store的计算属性,Getter接受state作为第一个参数
Action
类似与mutation,不同点:
- Action提交Mutation
- Action可以包含异步操作
//context对象与 store 实例具有相同方法和属性
actions: {
increment (context) {
context.commit('increment')
}
}
actions: {
increment ({ commit }) {
commit('increment')
}
}
分发Action
触发方式:
// 支持异步
store.dispatch('action参数名')