一、什么是mutations
Mutation的中文翻译是“突变”,在Vuex中,它是store对象的一个属性,mutations被用于更新store中所存放的所有状态。关于mutations,有以下几点需要注意
- 更改 Vuex 的 store 中的状态的唯一方法是提交 mutation。
- 通过this.$store.state来直接修改store中的状态也是有效的,但这种方式的修改无法被Vue的调试工具所记录,因此不推荐使用这种方法
- 通常情况下,Vuex要求我们的mutation中的方法必须是同步方法,这是由于mutation对异步方法的提交无法被Vue调试工具所记录
二、如何使用mutations
每个 mutation 都有一个字符串的事件类型 (type),等同于我们在mutations中定义的方法名。和一个 回调函数 (handler)。这个回调函数就是我们实际进行状态更改的地方,该回调函数可以有二个参数,但第一个参数一定对应的是state对象。
先上代码
// — index.js —
const store = new Vuex.Store({
state: {
Rome: ['TUR','RUS'] // 这是要被修改的数据
},
// mutations的定义方式
mutations: