【Vue】mutations

文章目录

  • 一、定义mutations
  • [二、组件中提交 mutations](#二、组件中提交 mutations)
  • [三、带参数的 mutations](#三、带参数的 mutations)

一、定义mutations

mutations是vuex中的对象,这个对象可以定义在当前store的配置项中

js 复制代码
const store = new Vuex.Store({
  state: {
    count: 0
  },
  // 定义mutations
  // mutations是一个对象,对象中存放修改state的方法
  mutations: {
    // 方法里参数 第一个参数是当前store的state属性
    // 第二个参数:payload 载荷 运输参数 调用mutaiions的时候 可以传递参数 传递载荷
    addCount (state, payload) {
      // 修改数据
      state.count += 1
    }
  },
})

二、组件中提交 mutations

jsx 复制代码
this.$store.commit('addCount') // 写的是mutations方法的名字

三、带参数的 mutations

目标

掌握 mutations 传参语法

语法

看下面这个案例,每次点击不同的按钮,加的值都不同,每次都要定义不同的mutations处理吗?

提交 mutation 是可以传递参数的 this.$store.commit('xxx', 参数)


提供mutation函数(带参数 - 提交载荷payload)

js 复制代码
mutations: {
  ...
  addCount (state, count) {
    state.count = count
  }
},

提交mutation

jsx 复制代码
handle ( ) {
  this.$store.commit('addCount', 10)
}

小tips: 提交的参数只能是一个, 如果有多个参数要传, 可以传递一个对象

jsx 复制代码
this.$store.commit('addCount', {
  count: 10
})
相关推荐
赵庆明老师6 分钟前
Vben精讲:21-详解web-antd:tsconfig.json
前端·json·vim
wc8816 分钟前
微软EDGE浏览器功能学习
前端·学习·edge
破z晓17 分钟前
javascript 导出excel表
开发语言·javascript·excel
Csvn1 小时前
🎯 原生 `<dialog>` 元素:终于可以扔掉一半的自定义弹窗组件了?
前端
Csvn1 小时前
🎨 CSS @layer:用「层叠优先级」终结样式打架的世纪难题
前端
小罗水2 小时前
第17章 后台管理端与演示支持
javascript·vue.js·ecmascript
濮水大叔2 小时前
不必把 Vue3 写成“麻花”:从状态碎片到对象协作,重新理解 Zova 的前端心智模型
前端·typescript·vue3·ioc·tsx·zova
Vuji2 小时前
MCP: 一条 tool 调用链路的旅程
前端·人工智能
万少3 小时前
DeepSeek-V4-Flash 正式版上线了,但这 3 个坑我帮你提前踩了
前端·javascript·后端
明月_清风3 小时前
🚀 Palantir Foundry 本体论实战:当 Ontology 从"知识图谱"进化为"企业操作系统"
前端·后端