例子

  1. export default new Vuex.Store({
  2. state: {
  3. count:1
  4. },
  5. mutations: {
  6. increase(state){
  7. state.count++
  8. },
  9. decrease(state){
  10. state.count--
  11. },
  12. double_two(state){
  13. state.count = state.count*2
  14. }
  15. },
  16. modules: {
  17. }
  18. })
  1. <template>
  2. <div class="home">
  3. <p>{{this.$store.state.count}}</p>
  4. <button @click="add">增加</button>
  5. <!-- reduce -->
  6. <button @click="reduce">减少</button>
  7. <button @click="double">countx2</button>
  8. </div>
  9. </template>
  10. <script>
  11. export default {
  12. name: 'Home',
  13. methods:{
  14. add(){
  15. this.$store.commit("increase")
  16. /* decrease */
  17. },
  18. reduce(){
  19. this.$store.commit("decrease")
  20. },
  21. double(){
  22. this.$store.commit("double_two")
  23. }
  24. }
  25. }
  26. </script>

一、使用mapMutations改良上面的例子

可以批量的向vuex的mutations去传递事件

  1. <template>
  2. <div class="home">
  3. <p>{{this.$store.state.count}}</p>
  4. <button @click="increase">增加</button>
  5. <!-- reduce -->
  6. <button @click="decrease">减少</button>
  7. <button @click="double_two">countx2</button>
  8. </div>
  9. </template>
  10. <script>
  11. import {mapMutations} from 'vuex'
  12. export default {
  13. name: 'Home',
  14. methods:{
  15. ...mapMutations(["increase","decrease","double_two"])
  16. }
  17. }
  18. </script>