zoukankan      html  css  js  c++  java
  • vuex简单梳理3,Mutations的用法和其辅助函数

    Mutations在vuex中的定位是修改store中state的唯一方法

    虽然在之前梳理state时,曾直接修改过state是可以修改的,但在真正使用的时候想要修改state还是要通过Muatations,

    而且在Mutations中不应该包含任何异步的请求异步的请求会在下一个梳理actions中提到。

    const state = {
        liuDeHua:12,
       
    }
    const mutations = {
        // 修改state下的liudehua
      默认第一个参数接受state,后面只能在传入一个参数
      //这里把函数用大写字母命名是为了与actions中的函数进行区分 SET_LIU_DE_HUA(state,num=1,num2){ console.log(num,num2,'只能接受一个参数,num2为undefined');// undefined console.log(this.state === state);//true state.liuDeHua +=num; }, }

    在组件中通过,$store.commit()调用Mutations中的方法

     <div>
                
                <input type="button" @click="$store.commit('SET_LIU_DE_HUA',2,3)">
            <input type="button" @click="set_liu(5)">
                {{$store.state.liuDeHua}}
            </div>
        methods:{
     
                    set_liu(num){
                        this.$store.commit("SET_LIU_DE_HUA",num)
                                
            }

    辅助函数的用法于之前类似

    
    
     import {mapMutations} from "vuex";
    methods:{
                ...mapMutations({
                    add:'SET_LIU_DE_HUA',
                    
                }),
                ...{
                    set_liu(num){//属于组件自己的方法也可以放子啊这里,但是没有区分,推荐第一种写法
                        this.$store.commit("SET_LIU_DE_HUA",num)
                    }
                }
                
            }

    组件中

     <input type="button" @click="$store.commit('SET_LIU_DE_HUA',2,3)">
                <input type="button" @click="add(4)">
                <input type="button" @click="set_liu(5)">

    大体内容就是这些

  • 相关阅读:
    生活的乐趣
    android加载webview白屏问题
    强极则辱
    向studio项目中复制集成其他代码,项目R文件丢失
    每一步都是最好的选择
    JQuery小插件,Selected插件1
    JSON进阶三JSON的几种调用形式
    JSON进阶四前后台交互之美
    .NET双样式分页控件
    JSON进阶五JS和WCF的交互
  • 原文地址:https://www.cnblogs.com/ybhome/p/13631206.html
Copyright © 2011-2022 走看看