回首Vue3之状态管理篇(六)

288 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

这篇文章我们讲一下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目录篇