Mutations
mutations 是一组修改数据的纯函数,它的服务对象是通过 state() 生成的数据,因此每一个 mutation 总是了解它的服务对象的结构、类型及默认值等信息。
Mutation 的签名
function (state: any, ...args)
Commit
除测试外,mutation 不宜直接调用。它将在 action 或 Vue 组件的注入方法里通过 VueModello 提供的名为 commit 的方法间接调用。
Mutations 的权限
在 Model 的子 module 中声明的 mutation 只能获得和修改本 module 的 state。属于 default module 的 mutation(即直接在 Model 中声明的 mutation)可获得和修改整个 state。
Mutations 应是纯的同步函数
不应在 mutations 中调用除参数外的对象,且函数应该是同步的,即在调用 mutation 的当前执行周期内执行完毕。
Mutations 是修改 state 的两个途径之一
每一个 mutation 被调用前将会被授权修改 state,调用后授权关闭,它和 v-model 指令一起共同承担修改 state 的责任。