在Vuex中Mutations修改状态操作下详解


本文摘自PHP中文网,作者coldplay.xixi,侵删。

上篇是读取state,这篇是修改状态。即如何操作Mutations。

一. $store.commit( )

Vuex提供了commit方法来修改状态

1.store.js文件

1

2

3

4

5

6

7

8

const mutations={

  add(state){

    state.count++

  },

  reduce(state){

    state.count--

  }

}

2.在button上的修改方法

<button @click="$store.commit('add')">+</button>

<button @click="$store.commit('reduce')">-</button>

二. 传值

最简单的修改状态的操作,在实际项目中我们常常需要在修改状态时传值。比如上边的例子,是我们每次只加1,而现在我们要通过所传的值进行相加。其实我们只需要在Mutations里再加上一个参数,并在commit的时候传递就就可以了。我们来看具体代码:

1.store.js

1

2

3

4

5

6

7

8

const mutations={

  add(state,n){

    state.count+=n

  },

  reduce(state){

    state.count--

  }

}

2.修改按钮的commit( )方法传递的参数,我们传递10,意思就是每次加10.

<button @click="$store.commit('add',10)">+</button>

<button @click="$store.commit('reduce')">-</button>

三.模板获取Mutations方法

实际开发中我们也不喜欢看到$store.commit( )这样的方法出现,我们希望跟调用模板里的方法一样调用。

例如:@click=”reduce” 就和没引用vuex插件一样。

1.在模板count.vue里用import 引入我们的mapMutations:

import { mapState,mapMutations } from 'vuex'

2.在模板的<script>标签里添加methods属性,并加入mapMutations

1

2

3

methods:mapMutations([

    'add','reduce'

]),

3.在模板中直接使用我们的reduce或者add方法

<button @click="reduce">-</button>

注意:封装起来$store.commit

1

2

3

reduce: function () {

 this.$store.commit('add', 10) // html标签是可以不写this

}

补充知识:vuex mutations参数传递

接下来做一个mutations的传参讲解

添加学生的例子

阅读剩余部分

相关阅读 >>

vuex的五个属性是什么

vuex是什么

vuex使用场景是什么

vuex中常用知识点(总结)

vuex刷新页面数据丢失怎么解决

vuex有什么用?

vuex中mutations怎么理解?怎么用?

vuex是什么?

vuex中mutations修改状态操作下详解

什么时候使用vuex

更多相关阅读请进入《vuex》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...