小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
这篇文章我们讲一下Store的实例方法:commit。
commit
在我们创建好Store实例后,我们应该怎么调用它的选项呢,那就用到了这个实例方法。
commit作用的是提交 mutation,也就是说我们在调用mutaion的方法时候需要以相应的 type 调用 store.commit 方法。
options 里可以有 root: true,它允许在命名空间模块里提交根的 mutation。
定义mutaion
const store = createStore({
state: {
name: "也笑"
},
mutations: {
changenName (state,name) {
// 变更状态
state.name=obj
}
}
})
commit调用
我们可以向 store.commit 传入额外的参数,即 mutation 的载荷(payload)。也就是说我们可以第一个参数传moutation里面的方法名,第二个参数传当前方法的参数即上文中的name。
第一种方式
当载荷不是对象的时候,即传的参数是字符串、数值类型的时候,如上函数,我们可以这样提交:
store.commit('changeName','slifree')
第二种方式
当载荷是对象的时候,如下:
mutations: {
changenName (state,obj) {
// 变更状态
state.name=obj.name
}
}
此时,我们不仅可以使用第一种方式,即:
store.commit('changeName',{ name:'slifree' })
还可以用另一种方式是直接使用包含 type 属性的对象,如下:
store.commit({
type: 'changeName',
name: ‘slifree’
})
总结
我们需要注意的是:commit是用来提交mutation方法的。
想了解更多文章,传送门已开启:回首Vue3目录篇 !